在迴圈開發中,break 與 continue 是調控執行流程的兩把利器。前者代表「中斷、跳出」,後者代表「跳過本次、繼續下次」。靈活運用它們能大幅簡化邏輯、提升效能。本文通過豐富範例,系統講解兩者語法、巢狀迴圈行為、標籤進階用法及實戰技巧。
break 可用於 while、do-while、for 三種迴圈,功能一致:立即結束所在迴圈,執行迴圈後的下一條語句。
int i = 0;
while (i < 10) {
i++;
if (i == 5) {
break; // i 為 5 時跳出迴圈
}
}
// 迴圈結束後繼續執行此處程式碼
預設情況下,break 僅跳出直接包裹它的那層迴圈:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("j = " + j);
if (j == 3) {
break; // 僅跳出內層 j 迴圈
}
}
// 外層 i 迴圈繼續執行
}
若需跳出外層迴圈,使用標籤:
outerLoop: // 標籤名稱,遵循標識符命名規則
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("j = " + j);
if (j == 3) {
break outerLoop; // 直接跳出 outerLoop 標記的外層迴圈
}
}
}
標籤規則:
break 標籤名 跳出對應標籤的迴圈無標籤環境下,常用 boolean 旗標協同雙重 break 實現:
boolean shouldBreakOuter = false;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("j = " + j);
if (j == 3) {
shouldBreakOuter = true;
break; // 跳出內層
}
}
if (shouldBreakOuter) {
break; // 跳出外層
}
}
| 關鍵字 | 作用範圍 | 執行流向 |
|---|---|---|
break | 整個迴圈 | 結束迴圈,執行迴圈後代碼 |
continue | 當前迭代 | 跳過本輪剩餘代碼,直接進入下一次迭代判斷 |
while / do-while:跳轉到條件判斷處for:跳轉到迭代語句(如 i++),再做條件判斷int i = 0;
while (i < 4) {
i++;
if (i == 2) {
continue; // 跳過 i=2 時的輸出
}
System.out.println(i);
}
// 輸出:1、3、4
同 break,預設僅影響所在層。配合標籤可跳過外層迴圈本輪:
outerLoop:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("j = " + j);
if (j == 3) {
continue outerLoop; // 直接跳到外層 i++,繼續下一輪 i
}
}
// 此處在 j==3 時不會執行
}
if:提前 continue 縮減縮排層級continuebreak/continuebreak/continue 上方說明跳出/跳過條件及業務含義總結:break 是「結束任務」,continue 是「跳過當下」。掌握它們在巢狀迴圈中的作用域、善用標籤突破層級限制、遵循可讀性原則,能讓流程控制代碼既高效又優雅。