for 迴圈是 C 語言中功能最強大、使用頻率最高的迴圈結構。本文從基本語法到進階變體、巢狀應用,系統整理 for 迴圈的完整知識體系。
for (expr1; expr2; expr3) statement;
expr1(僅一次)。expr2,非 0(真)進入迴圈體,為 0(假)結束迴圈。statement(單句或複合語句)。expr3,回步驟 2。
for (i = 1; i <= 100; i++) sum += i;
等價 while 寫法:
i = 1;
while (i <= 100) {
sum += i;
i++;
}
for ( ; ; ) statement; // 無限迴圈,等價 while(1)
i = 1;
for ( ; i <= 100; i++) sum += i;
for (i = 1; ; i++) {
sum += i;
if (i == 100) break;
}
for (i = 1; i <= 100; ) {
sum += i;
i++;
}
for ( ; i <= 100; ) { ... }
for (sum = 0, i = 1; i <= 100; i++) sum += i;
for (i = 0, j = 100; i <= 100; i++, j--) k = i + j;
for (i = 0; (c = getchar()) != '\n'; i += c); // 累加字符 ASCII 值
for ( ; (c = getchar()) != '\n'; ) printf("%c", c);
#include <stdio.h>
int main(void) {
int i, j, k;
printf("i j k\n");
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
for (k = 0; k < 2; k++)
printf("%d %d %d\n", i, j, k);
return 0;
}
輸出 8 行(2³)二進制組合。巢狀層數建議不超過 3 層,過深應重構。
for(;;) 或 while(1),體內必有 break/return。