CodeGym /課程 /JAVA 25 SELF /迴圈控制:運算子 break 與 continue

迴圈控制:運算子 break 與 continue

JAVA 25 SELF
等級 4 , 課堂 4
開放

1. 引言

經常會有這樣的情況:你不需要把迴圈的所有反覆運算都跑完,而是要在找到目標元素時提前退出。在其他情況下,你需要略過部分工作並進入下一步(例如你已讀取了資料,想略過其處理)。 這就是在迴圈內部進行流程控制。

運算子 breakcontinue 在 Java 中正是為此而設。讓我們來了解它們如何運作,以及在真實任務中會帶來哪些幫助。

2. 運算子 break: 「停下!」

理論與語法

運算子 break 用於在迴圈的任何位置立即退出。一旦程式執行到 break,迴圈就會立刻結束,接著從迴圈之後的第一行程式碼開始繼續執行。


while (uslovie)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // 其餘的迴圈程式碼
}
在迴圈 while 中使用 break

同樣也適用於 fordo-while

for (int i = 0; i < 10; i++)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // 其餘的迴圈程式碼
}

範例 1:檢查數是否為質數

一個數若只可被 1 與它本身整除,則為質數。我們需要檢查某個數是否為質數:從 2 到 n-1 遍歷所有可能的因數。如果發現此數能被某個因數整除,就不必再檢查——這個數不是質數!可以結束迴圈。

範例:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("找到了因數 " + i );
        break; // 停止迴圈,無需再搜尋!                
    }    
}

if (!found)
{
    System.out.println("未找到因數——該數是質數。");
}

範例 2:驗證使用者輸入

讓我們寫一個小應用,例如用來收集資料的互動式問卷:

while (true)
{
    System.out.print("請輸入你的年齡: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("太好了!你的年齡: " + age);
            break; // 資料正確 — 離開迴圈
        }
        else
        {
            System.out.println("錯誤!請輸入正整數的年齡。");
        }
    }
    else
    {
        System.out.println("錯誤!請輸入數字。");
        console.nextLine(); // 消耗無效輸入
    }
}

為什麼需要這樣做:
有時需要讓迴圈持續(甚至無限)執行,直到使用者輸入正確的資料。一旦發生了我們期待的事件——就使用 break,並最終退出迴圈。

3. 運算子 continue: 「下一位,請!」

理論與語法

break 不同,運算子 continue 並不結束整個迴圈,而只會中斷當前這次的反覆運算:在迴圈主體中,寫在 continue 後面的內容將不會執行——流程會直接進入下一次反覆運算。


for (int i = 0; i < 10; i++)
{
    if (uslovie)
    {
        continue;
    }
    // 只有在未觸發 continue 時才會執行這一段
}
在迴圈 for 中使用 continue

範例 3:跳過偶數

假設你只需要輸出區間內的奇數;偶數要跳過。


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // 若為偶數——就把下面的全部跳過!
    }
    System.out.println("奇數:" + i);
}
使用 continue 來跳過偶數

運作方式:
i = 2, 4, 6... 時,迴圈遇到 continue 便會立刻跳到下一次反覆運算,而不執行 System.out.println

逐步視覺化流程:

i i % 2 == 0 動作
1 false 輸出,沒有 continue
2 true continue,沒有輸出
3 false 輸出,沒有 continue
... ... ...

運算子 breakcontinue 非常常用,幾乎在許多迴圈中都會出現。你會喜歡使用它們。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION