我正在尝试分析java代码并查看它的作用,但在“break label”行中它给出了“未定义标签”错误。根据我的理解,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;
,就好像它类似于 C/C++ 中的 goto label;
语法。这不是 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
<小时/>希望这有帮助!
关于java - 使用标签中断时java中出现"Undefined label"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44129866/