我正在尝试分析 Java 代码并查看它的作用,但在“中断标签”行中,它给出了“未定义标签”错误。根据我的理解,java 与 c# 不同,它允许闯入当前范围之外的范围。不是吗?
if (conditions) {
// some code
if (conditions) {
break label;
}
// some code
}
for (;;) {
if (conditions) {
// some code
}
// some code
break;
label:
// some code
}
在您的示例中,您正在尝试使用break label;
类似于goto label;
C/C++ 中的语法。这不是它在 Java 中的工作方式。
在 Java 中,该break label;
语法仅适用于使用嵌套循环并且需要从内部循环中断到相关外部循环之一的情况。
例如:
outer: while(some condition) {
inner: while(another condition) {
innermost: while(yet another condition) {
if(breaking_condition) {
break inner;
} else if (one more breaking condition) {
break outer;
}
}
}
}
请参阅 Oracle 的本教程:
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句