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

C 語言三種循環求 2+4+6+...+100 偶數和:for、while、do-while 完整對比

     編輯:C 語言問答

C 語言三種循環求 2+4+6+...+100 偶數和:for、while、do-while 完整對比

同一問題用三種循環實現,驗證結果一致性,理解各循環適用場景。

數學驗證

等差數列求和:首項 2,末項 100,項數 50
Sum = n × (a₁ + aₙ) / 2 = 50 × 102 / 2 = 2550

三種實現代碼

#include <stdio.h>

int main() {
    int sum, i;

    /* 1. for 循環:已知次數,最適合 */
    sum = 0;
    for (i = 2; i <= 100; i += 2) {
        sum += i;
    }
    printf("for 循環結果:%d\n", sum);

    /* 2. while 循環:條件驅動 */
    sum = 0;
    i = 2;
    while (i <= 100) {
        sum += i;
        i += 2;
    }
    printf("while 循環結果:%d\n", sum);

    /* 3. do-while 循環:至少執行一次 */
    sum = 0;
    i = 2;
    do {
        sum += i;
        i += 2;
    } while (i <= 100);
    printf("do-while 循環結果:%d\n", sum);

    return 0;
}

輸出結果

for 循環結果:2550
while 循環結果:2550
do-while 循環結果:2550

三種循環對比表

維度forwhiledo-while
判斷時機每次迭代前每次迭代前每次迭代後
可能零次執行是是否 (至少一次)
適用場景計數器控制、已知範圍條件驅動、未知次數菜單交互、至少一次處理
初始化/增量位置集中在頭部分散在體外/體內體外初始化、體內增量
語義清晰度最高 (循環控制集中)中等較低 (易忽略後判斷)

進階優化:數學公式直接計算


int n = 50;           // 項數
int sum = n * (2 + 100) / 2;  // 2550,O(1) 時間複雜度

實際工程中優先選擇 O(1) 數學解,循環僅用於無法求閉式解的情況。

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