語法結構
do
statement;
while (boolean_expression);
// 區塊形式
do {
// 多行陳述式
} while (condition);
執行流程
- 執行
statement (至少一次)
- 評估
boolean_expression
true → 回步驟 1;false → 結束迴圈
與 while 差異對照
| 特性 | while | do-while |
| 測試時機 | 前測試 (預檢) | 後測試 (後檢) |
| 最少執行次數 | 0 | 1 |
| 適用場景 | 可能零次執行 | 至少需執行一次 |
經典應用:使用者輸入驗證
string input;
do
{
Console.Write("請輸入 Y/N: ");
input = Console.ReadLine()?.Trim().ToUpper();
} while (input != "Y" && input != "N");
Console.WriteLine($"您輸入: {input}");
階乘計算範例
long Factorial(int n)
{
long result = 1;
do
{
result *= n;
n--;
} while (n > 0);
return result;
}
// 注意:n=0 時仍執行一次 (result=1, n=-1),結果正確但語意較 while 不直觀
break / continue 支援
do
{
if (skip) continue; // 直接跳到 while 判斷
if (stop) break; // 完全離開迴圈
Process();
} while (condition);
避免常見錯誤
- 忘記分號:
while (cond); 結尾必須有分號
- 條件永真導致無限迴圈:確保迴圈內修改條件相關變數
- 適用性誤判:若「零次執行」合法,請改用
while
總結
do-while 是「至少一次」語意的專用迴圈,常用於選單互動、輸入驗證、初始化必須先執行一次的場景。記住分號結尾、後測試特性,避免濫用取代 while。
- 上一篇文章: C# for 迴圈完整指南:語法結構、巢狀迴圈、跳轉控制與實戰範例
- 下一篇文章: C# while 迴圈:前測試迴圈語法、break/continue 控制與實戰範例
Copyright ©
程式碼之家 All Rights Reserved