"Undefined label" 使用标记中断时 java 中的错误

"Undefined label" error in java when using labeled break

我正在尝试分析 java 代码并查看它的作用,但在 "break label" 行中出现 "Undefined 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


希望对您有所帮助!