Amy*_*y B 107 java labeled-statements
这段代码让我盯着我的屏幕几分钟:
loop:
for (;;) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
(第137行)
我以前从未见过这个,我不知道Java有一个"循环"关键字(NetBeans甚至不像关键字那样对它进行着色),并且它可以用JDK 6编译得很好.
解释是什么?
Jig*_*shi 200
它不是keyword
一个label
.
用法:
label1:
for (; ; ) {
label2:
for (; ; ) {
if (condition1) {
// break outer loop
break label1;
}
if (condition2) {
// break inner loop
break label2;
}
if (condition3) {
// break inner loop
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
文档.
Rob*_*rco 73
正如其他海报所说,它是一个标签,而不是一个关键词.使用标签可以执行以下操作:
outer: for(;;) {
inner: for(;;) {
break outer;
}
}
Run Code Online (Sandbox Code Playgroud)
这允许破坏外环.
Sea*_*oyd 31
问题得到了解答,但作为旁注:
我听说过面试问题"为什么这个Java代码有效?" (剥离了更简单的例子;这里是较为简单的一个,蒂姆·比斯(TimBüthe)):
url: http://www.myserver.com/myfile.mp3
downLoad(url);
Run Code Online (Sandbox Code Playgroud)
你们都知道这段代码是什么(除了可怕的)吗?
解决方案:两个标签,url
以及带有与标签具有相同名称()的参数http
的注释www.myserver.com/myfile.mp3
和方法调用url
.是的,这个编译(如果您在其他地方定义方法调用和局部变量).
Mic*_*rdt 16
这不是一个关键字,它是一个标签.它意味着与嵌套循环中的break
和continue
关键字一起使用:
outer:
for(;;){
inner:
for(;;){
if(){
break inner; // ends inner loop
} else {
break outer; // ends outer loop
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49395 次 |
最近记录: |