为什么我应该避免使用 Java 标签语句?

问题描述 投票:0回答:4

互联网上到处都有人说你应该避免在 java 中使用标签语句。然而,我发现它们在某些情况下非常有用,即嵌套循环。
关于为什么不使用它们,我找不到满意的答案。我认为标签的替代品通常会降低可读性或性能,或两者兼而有之。

那么是什么让带标签的break和continue语句如此糟糕呢?

java nested-loops break continue labeled-statements
4个回答
8
投票

标签完全可以摆脱嵌套的 for 循环。

 

PS:就我个人而言,我建议(我同意 Kent Beck 的观点,请参阅他的实现模式书)将嵌套循环放在单独的方法中,然后使用

return
进行突破,但这会把“单一返回点”人们的愤怒投到我身上。互联网,哦,互联网。


1
投票

我发现标记的 Break 和 continue 语句都是完全没有必要的。这只是一种风格。还有其他方法可以达到相同的结果,并且许多人更喜欢这些方法。


1
投票

最常见的论点是它们对于初学者来说很难解释。另一个论点是(太多)嵌套循环被认为是不好的做法;换句话说,当你看到一个标签时,几乎可以肯定存在一个嵌套循环,这使得标签隐含地不好。常见的做法是将嵌套循环重构为方法。这应该可以提高可维护性和其他类似的事情。然而,如果嵌套循环除了几行代码中明显的事情之外没有做其他事情,那么我认为它是完全负担得起的。


0
投票

只要方法只做一件事,只做一件事并且做得很好,就不需要避免标签。

但是,如果需要标记的 Break 和 continue 语句,请快速进行心理检查该方法是否仍然足够内聚。

© www.soinside.com 2019 - 2024. All rights reserved.