上一篇講到了迴圈,這篇要來說明 continue 和 break 是兩個常用來改變迴圈執行流程的的控制語句,幫助開發者更靈活地控制迴圈邏輯。continue 和 break 雖然都會改變迴圈的正常執行,但實際作用和使用情境不同,請參考以下說明。
continue
continue 的作用是跳過當前這次迭代的剩餘程式碼,直接進入下一次迭代。換句話說,continue 會讓迴圈忽略目前的迴圈步驟中的後續程式碼,但不會終止整個迴圈的執行。
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // i 等於 2 時,跳過迴圈剩餘程式碼,立刻進到下一次迭代
}
System.out.println(i); // 輸出 0, 1, 3, 4
}
break
break 用來完全中止目前的迴圈執行,並立即跳出迴圈結構。當 break 被執行時,程式會立即退出所在的迴圈,不再繼續執行後續的迴圈迭代,程式接著執行迴圈外的程式碼。這對於在某些條件下要立即停止迴圈非常有用。
public class BreakExample {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
if (i == 3) {
break; // 當 i 等於 3 時,跳出迴圈
}
System.out.println(i); // 輸出 0, 1, 2
}
System.out.println("迴圈已結束");
}
}
上述說明都是使用for迴圈作為範例,但 continue 和 break 也可以用於 while 和 do-while 迴圈。
另外,使用 continue 和 break 時須留意,當在多層巢狀迴圈中使用continue 或 break時,它只會終止當前所在的迴圈,而不會跳出所有迴圈。如果想要同時結束多層迴圈,可以使用標籤(labels)來達成,label用來指定迴圈的範圍。
範例:
public class LabelBreakExample {
public static void main(String[] args) {
// 此處寫出標籤名稱,命名為outerLoop
outerLoop:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
System.out.println("i: " + i + ", j: " + j);
if (i == 2 && j == 2) {
// 在break後面加上標籤名稱
break outerLoop;
}
}
}
System.out.println("跳出所有迴圈");
}
}