中断并标记“标签 MyLabel 丢失”

2022-09-03 16:32:26

我有一个这样的代码:

if(condition1)
{
    break MyLabel;
}
while(true)
{
    //some code here
    MyLabel: if(condition2) break;
    //more code here
}

我得到这个错误:

标签 MyLabel 丢失。

怎么了?


答案 1

您只能拆分为文本封闭语句上的标签。在您的示例中,标签不在包含该语句的语句上。break

(值得一提的是,即使是支持的高级语言也不允许您从外部跳入循环的中间。我在想C...和较旧的语言,如FORTRAN。goto

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

(对不起,我无法抗拒。对于那些不明白笑话的人来说,“闯入”是指有人进入你的房子偷东西 - 请参阅“闯入并进入”......


答案 2

不能以这种一般方式将标签用作转到。
如果要转到更高级别的嵌套代码,请使用标签。

例如

l1: while
 l2: while
  l3: while
   break l1
   l4: while