为什么在Java中使用标签是一种不好的做法?我找不到理由。所有解释 - 你不应该仅仅因为你不应该使用它。
答案 0 :(得分:1)
很难将包含break
的代码读取到标签上。此外,标签可能会被意外移动,或者代码插入相对于标签的错误位置。编译器无法警告您这些影响,因为代码在语法上仍然有效。
难以阅读的代码难以维护。虫子将不可避免地蔓延。
其他控制结构(break
,continue
,while
,for
等)不会受此影响。
请注意,标签的switch
也不会受到这些影响:switch
块的结构定义明确。
打破嵌套循环的最明智的替代方法是将代码重新编码为函数并使用return
。您还可以(可能)将值返回给调用者,从而获得额外的好处。
答案 1 :(得分:1)
我认为你指的是休息并继续标记。
问题是标记为中断(和继续)是命令式语言的构造,绝对与面向对象无关。
在面向对象的程序中,可以很容易地理解流程。无法从代码的一部分跳转到代码的另一部分,您只能调用方法或继续当前代码或退出当前代码块。
对于您的应用程序,很容易发生错误,从一个位置跳到另一个位置是一个可能的中断点。跳跃会创建所谓的 spaghetti code
答案 2 :(得分:0)
标签可以打破嵌套的for循环。我建议将嵌套循环放在一个单独的方法中,然后使用return
。
问题在于,复杂的处理流程变得非常难以理解。
答案 3 :(得分:0)
标记符号(以及更小的方式中断)与旧语言(FORTRAN,COBOL,Basic)的旧GOTO语句相比更为现代。发现Goto语句比所有其他类型的语句组合更容易包含错误 - 我记得的研究测得它的可能性是9倍。这引发了结构化编程" 70年代的运动,以及当时禁止某些软件商店的goto声明。
能够轻松阅读代码比能够无限制地编写代码更为重要。