| 關鍵字 | 作用範圍 | 執行流程 | 典型場景 |
|---|---|---|---|
break | 整層迴圈或 switch | 立即跳出當前層迴圈,繼續執行迴圈後的程式碼 | 找到目標元素、異常終止條件 |
continue | 當前迴圈迭代 | 跳過本次迭代剩餘程式碼,直接進入下一次迭代判斷 | 過濾特定資料、跳過無效輸入 |
switch 區塊中break;public class BreakDemo {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for (int x : numbers) {
if (x == 30) {
break; // 遇到 30 立即結束整個迴圈
}
System.out.println(x);
}
// 輸出:10、20
}
}
continue;public class ContinueDemo {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for (int x : numbers) {
if (x == 30) {
continue; // 跳過 30,直接處理下一個元素
}
System.out.println(x);
}
// 輸出:10、20、40、50
}
}
Java 支援標籤語法,可精確控制多層巢狀迴圈:
outerLoop: for (int i = 0; i < 3; i++) {
innerLoop: for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
break outerLoop; // 直接跳出外層迴圈
}
System.out.println("i=" + i + ", j=" + j);
}
}
if-else 替代 break/continue,提升可讀性。continue 時確保迴圈變數仍會正確更新,避免無限迴圈。continue 過濾無效資料,主邏輯保持縮排淺層。while 迴圈中 continue 前未更新條件變數。// fall through 或改用 switch expression(Java 12+)。