1. 前言
常常會遇到這種情況:你不需要把循環全部跑完,只想在找到目標元素時就直接跳出來。或者有時候你想跳過某些步驟,直接進到下一輪(像是你讀到某些資料,想直接略過處理)。 這就是在循環裡面做流程控制啦。
C# 的 break 跟 continue 運算子就是為了這種情境設計的。來看看它們怎麼用,還有在實務上會怎麼幫到你。
2. break 運算子:「停!到這裡就好!」
理論與語法
break 運算子是用來立刻跳出循環,不管你現在在循環的哪一行。只要程式執行到 break,這個循環就馬上結束,然後從循環 後面 的第一行繼續執行。
while (條件)
{
if (某個條件)
{
break;
}
// 其他循環內容
}
在
while 循環裡用
break
同樣的寫法也適用於 for 跟 do-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, 沒有印出 |
| ... | ... | ... |
break 跟 continue 這兩個運算子超常用。幾乎每兩個循環就會用到一次。你會很喜歡用它們的!
GO TO FULL VERSION