語法:while(條件) 語句; — 先判斷條件,為真執行循環體,假則退出。屬「先檢查後執行」,可能零次執行。
#include <stdio.h>
main() {
char c = '\0';
while (c != '\r') // '\r' 為回車
c = getche(); // 帶回顯輸入
}
while ((c = getche()) != '\r'); // 單行循環,分號為空語句
語法:do 語句; while(條件); — 先執行一次循環體,再判斷條件。屬「先執行後檢查」,至少執行一次。
| 特性 | while | do-while |
|---|---|---|
| 檢查時機 | 循環開始前 | 循環結束後 |
| 最少執行次數 | 0 | 1 |
| 適用場景 | 可能不執行的循環 | 菜單、輸入驗證等必執行一次 |
{} 包裹#include <stdio.h>
main() {
char c, fname[13];
FILE *fp;
printf("File name: ");
scanf("%s", fname);
fp = fopen(fname, "r");
while ((c = fgetc(fp)) != EOF)
putchar(c);
fclose(fp);
}
掌握兩種循環的語義差異,根據業務邏輯選擇合適類型,是編寫正確循環代碼的關鍵。