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

时间:2009-12-12 16:31:01

标签: java label break nested-loops continue

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

那么是什么使得标记的break和continue语句如此糟糕?

4 个答案:

答案 0 :(得分:9)

标签完全可以打破嵌套的for循环。

PS:就个人而言,我建议(我和Kent Beck一致,请参阅他的implementation patterns书)将嵌套循环放在一个单独的方法中,然后与{ {1}}但这将使“单一回归点”的人对我产生愤怒。互联网,哦,互联网。

答案 1 :(得分:1)

我发现标记的断点和继续声明都是完全没必要的。这只是一种风格。还有其他方法可以达到相同的效果,很多人更喜欢这些。

答案 2 :(得分:1)

最常见的争论是,他们很难为初学者解释。另一个论点是(太多)嵌套循环被认为是不好的做法;换句话说,当你看到一个标签时,几乎可以肯定是一个嵌套的循环,这使得标签因此隐含着坏。通常的做法是将嵌套循环重构为方法。这应该提高可维护性和其他类似的东西。但是,如果嵌套循环只是在几行代码中没有做明显的事情,那么在我看来它是完全可以承受的。

答案 3 :(得分:0)

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

但是,如果需要标记的中断和继续语句,只需进行快速的心理检查,如果方法仍然具有足够的内聚性。