CodeGym /課程 /C# SELF /循環控制:break 和 continue 運算子

循環控制:break 和 continue 運算子

C# SELF
等級 4 , 課堂 4
開放

1. 前言

常常會遇到這種情況:你不需要把循環全部跑完,只想在找到目標元素時就直接跳出來。或者有時候你想跳過某些步驟,直接進到下一輪(像是你讀到某些資料,想直接略過處理)。 這就是在循環裡面做流程控制啦。

C# 的 breakcontinue 運算子就是為了這種情境設計的。來看看它們怎麼用,還有在實務上會怎麼幫到你。

2. break 運算子:「停!到這裡就好!」

理論與語法

break 運算子是用來立刻跳出循環,不管你現在在循環的哪一行。只要程式執行到 break,這個循環就馬上結束,然後從循環 後面 的第一行繼續執行。


while (條件)
{
    if (某個條件)
    {
        break;
    }
    // 其他循環內容
}
while 循環裡用 break

同樣的寫法也適用於 fordo-while

for (int i = 0; i < 10; i++)
{
    if (某個條件)
    {
        break;
    }
    // 其他循環內容
}

範例 1:檢查數字是不是質數

質數就是只能被 1 跟自己整除的數字。我們要檢查一個數是不是質數:從 2 到 n-1 把所有可能的因數都試一次。如果發現這個數能被某個因數整除,就不用再檢查了——這個數不是質數!可以直接結束循環。

範例:

int number = 111;
bool found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        Console.WriteLine("找到因數 " + i );
        break; // 結束循環,沒必要再找下去了!                
    }    
}

if (!found)
{
    Console.WriteLine("沒找到因數 - 這是質數。");
}

範例 2:驗證使用者輸入

來寫個小應用,比如互動式問卷收集資料:

while (true)
{
    Console.Write("請輸入你的年齡: ");
    string input = Console.ReadLine();
    int age;
    if (int.TryParse(input, out age) && age > 0)
    {
        Console.WriteLine($"太棒了!你的年齡是: {age}");
        break;   // 輸入正確 — 可以結束循環了!
    }
    else
    {
        Console.WriteLine("錯誤!請輸入正確的正整數年齡。");
    }
}

為什麼要這樣做:
有時候你需要讓循環一直跑(甚至無限),直到使用者輸入正確的資料。只要發生你想要的事件——就用 break 直接跳出循環。

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

理論與語法

break 不一樣,continue 運算子不會結束整個循環,只是 跳過這一輪剩下的程式:在循環裡 continue 之後的東西都不會執行,直接進到下一輪。


for (int i = 0; i < 10; i++)
{
    if (條件)
    {
        continue;
    }
    // 只有沒被 continue 跳過才會執行這裡
}
for 循環裡用 continue

範例 3:跳過偶數

假設你只想印出範圍內的奇數,偶數要跳過。


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // 如果是偶數 — 下面的都不執行!
    }
    Console.WriteLine("奇數: " + i);
}
continue 跳過偶數

發生了什麼:
i = 2, 4, 6... 時,循環遇到 continue 就直接跳到下一輪,不會執行 Console.WriteLine

逐步流程圖:

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

breakcontinue 這兩個運算子超常用。幾乎每兩個循環就會用到一次。你會很喜歡用它們的!

2
任務
C# SELF, 等級 4, 課堂 4
上鎖
跳過能被3整除的數字
跳過能被3整除的數字
2
任務
C# SELF, 等級 4, 課堂 4
上鎖
找到第一個能被 7 整除的數字,並停止迴圈
找到第一個能被 7 整除的數字,並停止迴圈
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION