while:先判斷條件,條件為真才執行本體 (零次或多次)。
do-while:先執行本體,再判斷條件 (至少一次)。
while (condition) { do {
// body // body
} } while (condition);
↑ ↑
判斷 執行後判斷
// while: 可能零次執行 (若預設值符合)
string input = "";
while (string.IsNullOrWhiteSpace(input)) {
Console.Write("請輸入姓名: ");
input = Console.ReadLine();
}
// do-while: 至少提示一次
string name;
do {
Console.Write("請輸入姓名: ");
name = Console.ReadLine();
} while (string.IsNullOrWhiteSpace(name));
// 選單系統:至少顯示一次選單
int choice;
do {
ShowMenu();
choice = int.Parse(Console.ReadLine());
ProcessChoice(choice);
} while (choice != 0);
// 標準形式
for (int i = 0; i < 10; i++) { }
// 多重初始化/遞增
for (int i = 0, j = 10; i < j; i++, j--) { }
// 無限迴圈
for (;;) { break; }
// foreach 語法糖 (編譯為迭代器模式)
foreach (var item in collection) { }
// C# 8+ 範圍運算子
foreach (var i in 1..10) { } // 1 到 9
| 關鍵字 | 行為 | 適用迴圈 |
|---|---|---|
| break | 立即跳出最內層迴圈 | 所有 |
| continue | 跳過本次剩餘,進入下一次迭代 | 所有 |
| goto | 跳轉標籤 (不建議) | 所有 |
| return | 離開方法 | 所有 |
| yield break | 結束迭代器 | iterator |
for (JIT 優化最好)foreach (語意清晰、支援 IEnumerable)do-whilewhileStringBuilder)Parallel.For / Span / Vector<T> SIMD


