Java中的标签 - 糟糕的做法?

时间:2015-11-13 09:25:00

标签: java label

为什么在Java中使用标签是一种不好的做法?我找不到理由。所有解释 - 你不应该仅仅因为你不应该使用它。

4 个答案:

答案 0 :(得分:1)

很难将包含break的代码读取到标签上。此外,标签可能会被意外移动,或者代码插入相对于标签的错误位置。编译器无法警告您这些影响,因为代码在语法上仍然有效。

难以阅读的代码难以维护。虫子将不可避免地蔓延。

其他控制结构(breakcontinuewhilefor等)不会受此影响。

请注意,标签的switch也不会受到这些影响:switch块的结构定义明确。

打破嵌套循环的最明智的替代方法是将代码重新编码为函数并使用return。您还可以(可能)将值返回给调用者,从而获得额外的好处。

答案 1 :(得分:1)

我认为你指的是休息并继续标记。

问题是标记为中断(和继续)是命令式语言的构造,绝对与面向对象无关。

在面向对象的程序中,可以很容易地理解流程。无法从代码的一部分跳转到代码的另一部分,您只能调用方法或继续当前代码或退出当前代码块。

对于您的应用程序,很容易发生错误,

从一个位置跳到另一个位置是一个可能的中断点。跳跃会创建所谓的 spaghetti code

答案 2 :(得分:0)

标签可以打破嵌套的for循环。我建议将嵌套循环放在一个单独的方法中,然后使用return

问题在于,复杂的处理流程变得非常难以理解。

答案 3 :(得分:0)

标记符号(以及更小的方式中断)与旧语言(FORTRAN,COBOL,Basic)的旧GOTO语句相比更为现代。发现Goto语句比所有其他类型的语句组合更容易包含错误 - 我记得的研究测得它的可能性是9倍。这引发了结构化编程" 70年代的运动,以及当时禁止某些软件商店的goto声明。

能够轻松阅读代码比能够无限制地编写代码更为重要。