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

C語言 for 循環完整指南:語法結構、三表達式變體、巢狀循環與靈活用法

     編輯:C 語言基礎

for 循環語法

for (表達式1; 表達式2; 表達式3) {
    語句塊
}

執行流程

  1. 執行表達式1(初始化,僅一次)
  2. 判斷表達式2(循環條件),真 → 執行循環體,假 → 結束
  3. 循環體結束後執行表達式3(迭代更新)
  4. 重複 2-3,直到條件為假

對比:while vs for 計算 1+...+100

// while 版:初始化、條件、更新分散
int i = 1, sum = 0;
while (i <= 100) {
    sum += i;
    i++;
}

// for 版:三要素集中,結構清晰
int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}

三表達式詳細說明

三表達式皆可省略(分號必保留)

1. 省略初始化:外部預置

int i = 1, sum = 0;
for (; i <= 100; i++) sum += i;

2. 省略條件:死循環(需內部 break)

for (int i = 1; ; i++) sum += i;  // 等價 while(1)

3. 省略迭代:循環體內手動更新

for (int i = 1; i <= 100; ) {
    sum += i;
    i++;
}

4. 省略 1 和 3:退化為 while

for (; i <= 100; ) { sum += i; i++; }  // ≡ while(i<=100)

5. 全省略:標準死循環

for (;;) statement;  // ≡ while(1) statement;

6. 表達式1可為非初始化語句

for (sum = 0; i <= 100; i++) sum += i;

7. 逗號表達式:多變量初始化/更新

for (int sum = 0, i = 1; i <= 100; i++) sum += i;
for (int i = 0, j = 100; i <= 100; i++, j--) k = i + j;

8. 條件表達式靈活:賦值、函數調用

for (int i = 0; (c = getchar()) != '\n'; i += c);
for (; (c = getchar()) != '\n'; ) printf("%c", c);

巢狀 for 循環:九九乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        printf("%d×%d=%-2d ", j, i, i*j);
    }
    printf("\n");
}

常見錯誤與技巧

表達式別名典型用途執行次數
表達式1初始化循環變量賦初值1
表達式2循環條件關系/邏輯表達式,非0繼續每次迭代前
表達式3迭代更新自增/自減/指針移動每次迭代後
錯誤正確
for(i=0; i<=n; i++) 訪問 a[i] (長度 n)i < n
修改循環變量導致邏輯錯亂for 迭代表達式統一管理
浮點數作循環條件整數計數器 + 計算浮點值
忘寫分號for(;;) 必須兩個分號

for 循環優勢總結

  • 結構緊湊,三要素一目了然
  • 作用域可限制在 for 內(C99 for(int i=...))
  • 靈活性最高,可模擬 while、do-while、無限循環
  • 編譯器優化友好(向量化、展開)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved