打破并贴上标签,"标签MyLabel缺失"

Lrr*_*rrr 14 java label break

我有这样的代码:

if(condition1)
{
    break MyLabel;
}
while(true)
{
    //some code here
    MyLabel: if(condition2) break;
    //more code here
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

标签MyLabel缺失.

怎么了?

Ste*_*n C 47

您只能破坏文本封闭语句中的标签.在您的示例中,标签不在包含该break语句的语句上.

(对于它的价值,甚至更高级别的语言支持goto不允许你从外部跳到循环的中间.我正在考虑C ...和像FORTRAN这样的旧语言.)

Java允许你爆发,但闯入是非法的...并会让你被捕:-)

(对不起,我无法抗拒.对于那些不开玩笑的人来说,"闯入"就是当有人进入你的房子偷东西时 - 看到"打破并进入" ...)

  • 我喜欢在关于标签的主题中看到_arrested_这个词.恕我直言,标签的好用例非常罕见. (8认同)

Far*_*mor 8

不能一般方式使用标签作为goto .
如果要转到更高级别的嵌套代码,请使用标签.

例如

l1: while
 l2: while
  l3: while
   break l1
   l4: while
Run Code Online (Sandbox Code Playgroud)