首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言 do-while 迴圈詳解:至少執行一次的特殊機制

     編輯:關於C語言

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

語法與流程

do
    statement;
while (expression);

do-while流程圖

關鍵差異:while vs do-while

特性whiledo-while
判斷時機迴圈前迴圈後
最少執行次數01
適用場景可能零次執行至少一次執行

經典範例

範例 6-5:計算 1+2+...+100

#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;
}

範例 6-6:互動式累加對比

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); 結尾必須有分號,否則語法錯誤。
  • 複合語句需大括號: 多行語句必須用 { } 包裹。
  • 條件變數須在體內更新: 否則陷入無限迴圈。

適用場景速查

  1. 選單系統:顯示選單 → 讀取選項 → 處理 → 重複。
  2. 輸入驗證:提示輸入 → 檢查合法性 → 不合法重來。
  3. 至少一次業務邏輯:如「先嘗試連線,失敗則重試」。

總結

do-while 以「先做事,後算帳」的獨特語意,完美契合「至少一次」的業務需求。善用它能減少冗餘的初始化代碼,讓程式邏輯更貼近人類直覺流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved