我有这样的代码:
if(condition1)
{
break MyLabel;
}
while(true)
{
//some code here
MyLabel: if(condition2) break;
//more code here
}
我收到此错误:
标签MyLabel缺失。
怎么了?
答案 0 :(得分:47)
您只能分解到文本封闭语句中的标签。在您的示例中,标签不在包含break
语句的语句中。
(对于它的价值,即使是支持goto
的高级语言也不允许你从外部跳到循环的中间。我正在考虑C ...而且更老像FORTRAN这样的语言。)
Java允许你突破,但闯入是非法的...并会让你被捕: - )
(对不起,我无法抗拒。对于那些不开玩笑的人来说,“闯入”是指有人进入你的房子偷东西 - 见"break and enter" ... )子>
答案 1 :(得分:8)
您无法以一般的方式使用标签转到goto。
如果要转到更高级别的嵌套代码,请使用标签。
例如
l1: while
l2: while
l3: while
break l1
l4: while