forはカウンタ変数をインクリメントしながら条件を満たす限り繰り返します。
ループの中でカウンタ変数を必要とする場合には、forステートメントを使います。
forステートメントの書式は単純で、次のとおりです。
for (init-expr; cond-expr; loop-expr)
statement;
init-exprは初期化式で、繰り返しが始まる前に実行される式です。
cond-exprはループを継続する条件式で、この値が真(true)である限り繰り返しが継続します。loop-exprは繰り返しするたびに実行されるループ式です。
statementは繰り返して実行するステートメントで、{と}で囲むことによって複数のステートメントを記述することもできます。
forステートメントを使ったループは、通常、繰り返しの回数があらかじめわかっているか、あるいは、繰り返すステートメントの中でカウンタ変数が必要であるときに使います。
次の例は、0から9までの数を加算するコードの例です。
int x = 0;
for (i = 0; i < 10; i++)
x += i;
printf("0~9を加算した値=%d\n", x);
実行結果は次のようになります。
0~9を加算した値=45
forステートメントの初期化式や繰り返しごとに評価される式には、カンマ(,)を使って、複数の式を記述することができます。
次の例は、カウンタ変数としてiとjの2個を使うスクリプトの例です。
int x = 0;
for (i=0, j=1; i < 10; i++, j++)
x = i + j * 2;
printf("x=%d\n", x);
実行結果は次のようになります。
x=29