为啥我在 java 中得到 Undefinedlabel 错误?

Posted

技术标签:

【中文标题】为啥我在 java 中得到 Undefinedlabel 错误?【英文标题】:why i am getting Undefinedlabel error in java?为什么我在 java 中得到 Undefinedlabel 错误? 【发布时间】:2010-04-23 14:08:40 【问题描述】:

为什么我在下面的代码中得到未定义的标签错误? 我忽略了代码,因为它没有用...

 loopLabel: 
 for(i=0;;i++)
 
    some code;
   
    come code;
   
 

 if(condition)
 
     if(condition)
      some code     
     else 
      
           some code;
           continue loopLabel;
     
 

【问题讨论】:

您可以将 continue 放在 if which 在上面的 for 循环中,但不能放在独立的 if 中。因为它用于打破循环,这意味着忽略循环中剩余的所有内容。 【参考方案1】:

continue 用于跳到循环的新迭代的开始;如果你有嵌套循环并且你想指定跳转到哪一个,你可以使用一个标签。您正在尝试像 goto 一样使用它来跳转到完全不相关的代码部分,这是不允许的

法律用法是这样的:

foo:
while(cond1) 
    code;
    while(cond2) 
        if(cond3) 
            continue foo;
        
    

(Java guide on branching statements)

【讨论】:

那么...有没有其他选择可以让我获得与 goto 一样的精确功能?? 实际上,您可以将代码包装在do ... while (false); 中,以便能够跳回到开头。但这会导致代码不清楚/不可维护,因此不受欢迎。 continue 在这种情况下不会跳回到开头,它会测试条件 (false) 并结束循环。你必须做while(true) 并在最后爆发。但是,是的,这将是可怕的 我可能应该重组程序..!谢谢大家!【参考方案2】:

因为你在循环之外。标签仅在循环内可见。

标签仅用于中断和继续循环。

【讨论】:

不知道,但我取消了它

以上是关于为啥我在 java 中得到 Undefinedlabel 错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 listView 中得到最后一个标题? [关闭]

为啥我在 Python 中没有得到 333

为啥我在这段代码中得到“未知类型名称 NSManagedObjectContext”?

为啥我在模式匹配中得到非法模式?

为啥我在结果中得到重复? (DBpedia sparql 查询)

为啥我用 spring-boot 得到 404 休息