while (condition)
statement;
先檢查條件,真才執行迴圈體。可能一次也不執行。範例:讀取鍵盤直到按 Enter:
char c = '\0';
while (c != '\r')
c = getche();
簡寫形式:while ((c = getche()) != '\r'); —— 迴圈體為空語句。
do
statement;
while (condition);
先執行迴圈體,再檢查條件。至少執行一次。適合選單驅動程式、輸入驗證等情境。
| 特性 | while | do-while |
|---|---|---|
| 條件檢查時機 | 迴圈前 | 迴圈後 |
| 最少執行次數 | 0 | 1 |
| 適用場景 | 不確定是否需執行 | 必須先執行一次 |
FILE *fp = fopen(fname, "r");
char c;
while ((c = fgetc(fp)) != EOF)
putchar(c);
展示 while 處理檔案逐字元讀取的經典模式。