for 迴圈是 C 語言中最常用的定點迴圈結構,將初始化、條件判斷、迭代更新集中在一行,結構清晰。本文以圖解與實例詳細拆解其執行順序與邊界行為。
for (表達式1; 表達式2; 表達式3) {
迴圈主體
}
i = 0,僅在迴圈開始前執行一次。i++,在每次主體執行結束後、下一次條件判斷之前執行。
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 10; i++) {
printf("%d\n", i);
}
printf("迴圈結束後 i = %d\n", i);
return 0;
}
0
1
2
...
9
迴圈結束後 i = 10

關鍵觀察: 當 i 遞增至 10 時,條件 i < 10 變為假 (0),迴圈結束。此時 i 的值已為 10,若後續程式碼使用 i,必須注意此邊界值。
| 寫法 | 行為 | 注意事項 |
|---|---|---|
for (;;) | 無限迴圈 | 需在主體內 break |
for (i=0; i<n; ++i) | 前置遞增 | 對簡單型別效能相同,習慣用法 |
for (i=n-1; i>=0; --i) | 反向迴圈 | i>=0 若 i 為 unsigned 會無限迴圈 |
| 省略表達式1/3 | 如 for (; i<10; ) | 初始化/更新在別處完成,分號不可省略 |
💡 最佳實務: 迴圈控制變數盡量在
for宣告中初始化(C99:for (int i=0; ...)),限制作用域,避免外部誤用;條件判斷保持簡單,複雜邏輯移至主體內。