验证代码
public static void main(String[] args) {
System.out.println("break");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
break;
}
System.out.println(i + ":" + j);
}
System.out.println("outer");
}
System.out.println("continue");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
continue;
}
System.out.println(i + ":" + j);
}
System.out.println("outer");
}
System.out.println("breakLabel");
breakLabel:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
break breakLabel;
}
System.out.println(i + ":" + j);
}
System.out.println("outer");
}
System.out.println("continueLabel");
continueLabel:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 10; j++) {
if (j == 5) {
continue continueLabel;
}
System.out.println(i + ":" + j);
}
System.out.println("outer");
}
}
执行结果
break
0:0
0:1
0:2
0:3
0:4
outer
1:0
1:1
1:2
1:3
1:4
outer
continue
0:0
0:1
0:2
0:3
0:4
0:6
0:7
0:8
0:9
outer
1:0
1:1
1:2
1:3
1:4
1:6
1:7
1:8
1:9
outer
breakLabel
0:0
0:1
0:2
0:3
0:4
continueLabel
0:0
0:1
0:2
0:3
0:4
1:0
1:1
1:2
1:3
1:4
结论
break和continue和简单不说
- break label跳到标签出并且结束整个循环
- continue label 跳到标签出开始,结束本次循环,进入下一次循环
- continue label后面的语句都不会执行(不论外层还是内层,不会输出outer);break跳出内存循环,break语句后面外层循环的语句会执行(会输出outer)。
总而言之break结束循环,continue终止当前循环进入下一次循环,带label后只是后面要执行的起始代码位置改变了
网友评论