java - 使用标签中断时java中出现"Undefined label"错误

标签 java label break

我正在尝试分析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/

相关文章:

java - 如何针对特定场景正确使用Apache Camel?

java - 使用 JAXB 将空列表编码为不存在的节点

ios - 使用日期/时间和核心图始终在原点显示标签

c++ - 它会破坏我在 C++ 中的 for 循环吗?

java - 休息;我最后的休息;给我一个 :Unreachable statement error, 任何线索为什么?

python - Python中根据字符分解子字符串

java - 使用 ListView 制作排行榜

java - Java中PHP的CURLOPT_POSTFIELDS相当于什么

R:如何旋转副 Y Axis 的标签?? {根据}

android - 网格行内的 Xamarin.Forms 标签的文本被截断