首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java代码中的"loop:“。这是什么,为什么要编译?

Java代码中的"loop:“。这是什么,为什么要编译?
EN

Stack Overflow用户
提问于 2010-09-29 21:03:53
回答 10查看 56.5K关注 0票数 118

这段代码让我盯着屏幕看了几分钟:

代码语言:javascript
复制
loop:
for (;;) {
    // ...
}

(line 137 here)

我以前从未见过这种情况,我也不知道Java有一个“循环”关键字(NetBeans甚至不像关键字那样给它着色),而且它在JDK6上编译得很好。

解释是什么?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-09-29 21:05:16

它不是keyword,它是label

用法:

代码语言:javascript
复制
    label1:
    for (; ; ) {
        label2:
        for (; ; ) {
            if (condition1) {
                // break outer loop
                break label1;
            }
            if (condition2) {
                // break inner loop
                break label2;
            }
            if (condition3) {
                // break inner loop
                break;
            }
        }
    }

Documentation

票数 210
EN

Stack Overflow用户

发布于 2010-09-29 21:07:29

正如其他发帖者所说,它是一个标签,而不是一个关键词。通过使用标签,您可以执行以下操作:

代码语言:javascript
复制
outer: for(;;) {
   inner: for(;;) {
     break outer;
   }
}

这允许中断外部循环。

Link to documentation

票数 74
EN

Stack Overflow用户

发布于 2010-09-29 21:41:19

问题已经回答了,但作为附注:

我听说过一些面试问题,比如“为什么这段Java代码有效?”(去掉更简单的例子;下面是更糟糕的例子,thx Tim Büthe ):

代码语言:javascript
复制
url: http://www.myserver.com/myfile.mp3
downLoad(url);

你们都知道这段代码是什么吗(除了糟糕)?

解决方案:两个标签,urlhttp,一个注释www.myserver.com/myfile.mp3和一个带有与标签同名的参数(url)的方法调用。是的,这是编译的(如果你在其他地方定义了方法调用和局部变量)。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3821827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档