do-while 是 C 語言中唯一的「後測試」迴圈:無條件先執行一次迴圈體,再判斷條件決定是否繼續。這特性讓它在選單系統、輸入驗證等「必須先跑一次」的場景獨具優勢。
do
statement;
while (expression);

| 特性 | while | do-while |
|---|---|---|
| 判斷時機 | 迴圈前 | 迴圈後 |
| 最少執行次數 | 0 | 1 |
| 適用場景 | 可能零次執行 | 至少一次執行 |
#include <stdio.h>
int main(void) {
int i = 1, sum = 0;
do {
sum += i;
i++;
} while (i <= 100);
printf("%d\n", sum); // 5050
return 0;
}
while 版: 若輸入初值 > 10,迴圈零次執行,sum=0。
scanf("%d", &i);
while (i <= 10) { sum += i; i++; }
do-while 版: 同樣輸入 > 10,仍會執行一次累加,sum 包含該初值。
scanf("%d", &i);
do { sum += i; i++; } while (i <= 10);
此差異在「輸入驗證、選單顯示」極為關鍵:do-while 保證提示至少顯示一次。
while (cond); 結尾必須有分號,否則語法錯誤。{ } 包裹。do-while 以「先做事,後算帳」的獨特語意,完美契合「至少一次」的業務需求。善用它能減少冗餘的初始化代碼,讓程式邏輯更貼近人類直覺流程。