驗(yàn)證代碼
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");
}
}
執(zhí)行結(jié)果
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
結(jié)論
break和continue和簡單不說
- break label跳到標(biāo)簽出并且結(jié)束整個循環(huán)
- continue label 跳到標(biāo)簽出開始,結(jié)束本次循環(huán),進(jìn)入下一次循環(huán)
- continue label后面的語句都不會執(zhí)行(不論外層還是內(nèi)層,不會輸出outer);break跳出內(nèi)存循環(huán),break語句后面外層循環(huán)的語句會執(zhí)行(會輸出outer)。
總而言之break結(jié)束循環(huán),continue終止當(dāng)前循環(huán)進(jìn)入下一次循環(huán),帶label后只是后面要執(zhí)行的起始代碼位置改變了