Jay*_*ith 3 java label for-loop
所以我已经看到很多情况,其中标签被用于for循环,特别是双嵌套循环.
这是唯一可以使用它们的情况吗?还是有其他我不知道的常见用途.我觉得它是一个我从未使用过的java工具!
可以说,标记循环是唯一可以使用标记语句的有用方法.
您是不允许标注任何声明在Java中,但他们使用的唯一途径是作为(标记)的目标break或continue声明.
通常的建议适用:只是因为你可以做某事并不意味着你应该这样做.不要使用标签作为有趣的"评论"(是的,我已经看到这样做).不要写双重嵌套循环只是为了展示你打破或继续外循环的能力.这些天我们倾向于支持适用于整个序列的操作,减少对标记breaks和continues的一些用途.与往常一样,旨在提高可读性和简洁性.也就是说,输出 Java源代码的解析器生成器等工具很可能会大量使用带标签的语句,即使人类程序员很少这样做.
标记为break 和 continue本质上是 goto 语句。
来自/sf/answers/446128371/:转发转到:
label: {
// do stuff
if (check) break label;
// do more stuff
}
Run Code Online (Sandbox Code Playgroud)
向后跳转
label: do {
// do stuff
if (check) continue label;
// do more stuff
break label;
} while(true);
Run Code Online (Sandbox Code Playgroud)
因此,这个问题归结为关于 goto 语句何时合法的永无休止的争论,例如:C 或 C++ 中良好 goto 的示例,以及上面的向后 goto 习惯用法甚至比直接 GOTO 更丑陋的事实。
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |