在循环前可以放一个标签来标识循环,使用如下形式。
lable:{
}
可以没有大括号,但是为了方便阅读推荐加上大括号的形式。
如,
public class test {
public static void main(String[] args) {
int i;
A:{
for(i = 1;i<=10;i++) {
System.out.println("i-in:" + i);
for(int j = 1;j < 10;j++) {
if(j == 5) {
i = j;
break A;
}
}
}
}
System.out.println("i-out:" +i);
}
}
运行结果:
i-in:1
i-out:5
可以看出,执行到break后会使执行在加标签的块的结尾重新开始。
如果一个标签不在包围break的块中定义,你就不能break到该标签。这样做是非法的,Java不会对它进行编译。
continue也可以指定一个标签来说明继续执行哪个包围的循环。如,
class ContinueLabel {
public static void main(String args[]) {
outer: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j > i) {
System.out.println();
continue outer;
}
System.out.print(" " + (i * j));
}
}
System.out.println();
}
}
运行结果:
0
0 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81
可以看出,执行continue后终止了内部的循环,继续执行外部循环。
网友评论