TH /TannoHubYOSHINOBU TANNOEN ↗
Cプログラミング

C言語のfor文:初期化・条件・更新を分けて考える

丹野 嘉信 / 技術ノート

for文が分からなくなったら、括弧の中を「開始時にすること」「繰り返す条件」「1回終わった後にすること」に分けてみます。

1から5まで表示する

for (int i = 1; i <= 5; i++) {
    printf("%d\n", i);
}

int i = 1 は最初に1回だけ実行されます。i <= 5 が真なら本体を実行し、その後に i++ で1増やします。再び条件を確認し、偽になったら終了します。

逆順にすると、条件も変わる

for (int i = 5; i > 0; i--) {
    printf("%d\n", i);
}

表示は5、4、3、2、1です。i > 0 は「0になったら止める」という命令ではなく、「0より大きい間は続ける」という条件です。0も表示するなら i >= 0 にします。

まず紙に3回分を書いてみる

iの値、条件の真偽、表示内容を順に書きます。更新後の値と、今表示している値を分けると、ループの動作を追いやすくなります。

上記のコードは、#include <stdio.h> を記述したC99以降のプログラムのmain関数内で試せます。

続けて読む

著者の研究・開発と教育活動 →