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

C 語言 for 迴圈完整教學指南

     編輯:C 語言入門

語法結構

for (初始化; 條件; 迭代) {
    迴圈主體;
}
// 等價 while 形式:
初始化;
while (條件) {
    迴圈主體;
    迭代;
}

三表達式執行順序

  1. 初始化:迴圈開始前執行**一次**(宣告/賦值)。
  2. 條件判斷:每次迴圈開始前求值,**非零(真)進入主體,零(假)結束迴圈**。
  3. 執行主體。
  4. 迭代表達式:主體結束後執行,然後回第 2 步。

基本範例

#include <stdio.h>

int main() {
    int n = 10;
    // 1 到 10 累加
    int sum = 0;
    for (int i = 1; i <= n; ++i) { // C99 允許迴圈內宣告 i
        sum += i;
    }
    printf("1+...+10 = %d\n", sum); // 55

    // 99 乘法表
    for (int i = 1; i <= 9; ++i) {
        for (int j = 1; j <= i; ++j) {
            printf("%dx%d=%2d ", j, i, i*j);
        }
        putchar('\n');
    }
    return 0;
}

進階用法

常見錯誤

模式範例說明
多變數初始化/迭代for (int i=0, j=10; i逗號運算子串聯
省略初始化int i=0; for (; i<10; ++i)變數在外部已初始化
省略條件(無限迴圈)for (;;) { if (break_cond) break; }需主體內 break
省略迭代for (int i=0; i<10; ) { if (cond) ++i; }條件式迭代
範圍基礎 for (C++11)for (auto& x : vec) { ... }C++ 專屬,遍歷容器

效能提示

  • 前置遞增 ++i:無需建立臨時物件,對迭代器/複雜型別有差異,養成習慣。
  • 條件判斷簡單化:避免在條件中呼叫函數/複雜運算,提前計算存變數。
  • 編譯器優化:現代編譯器對簡單 for 迴圈自動向量化/展開,寫清晰直觀碼即可。

總結

  • for 適合**已知迭代次數/範圍**的場景,三表達式靈活組合。
  • C99 支援迴圈內宣告變數(作用域限於迴圈),推薦使用。
  • 掌握「分號陷阱、無符號倒數、浮點計數器」三大經典坑。
  • 現代 C++ 優先使用範圍基礎 for (auto& x : container),更安全、更具表達力。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
錯誤現象修正
分號誤置for (int i=0; i<10; ++i); { ... } 主體執行 1 次移除條件後分號
浮點數作計數器精度誤差導致次數偏差用整數計數,浮點用於計算
修改迴圈變數主體內 i = 0 導致無限迴圈避免修改,或用 while
無符號倒數陷阱for (size_t i=n; i>=0; --i) 永真(i 永遠 >=0)for (size_t i=n; i-- > 0; ) 或用有符號