for文とは?C言語の繰り返し処理を初心者でも理解できるように解説

C言語では、同じ処理を何度も繰り返したい場面がよくあります。

例えば:

  • 配列の要素を順番に処理する
  • 1〜100までの数値を表示する
  • 条件を満たすまで処理を繰り返す

こういったときに使うのが for文 です。


目次

for文とは

for文とは、繰り返し処理を行うための制御構文です。

「何回繰り返すか」が決まっている処理に特に向いています。


基本構文

for(初期化;条件式;更新式)for (初期化; 条件式; 更新式)

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

実行の流れ(ざっくり理解)

for文は以下の順番で処理されます。

  1. 初期化(最初に1回だけ)
  2. 条件式を評価
  3. trueなら処理を実行
  4. 更新式を実行
  5. 条件式に戻る

C言語文法解説シリーズ

本記事は「C言語文法解説シリーズ」の1つです。
C言語の文法を、組み込み開発の視点も交えて解説しています。

C言語文法解説シリーズ一覧はこちら

⭐ 1ループごとの動き(ここが重要)

初心者さん

for文って、なんで回数通り動くの?

初心者さん

条件で止まってるから…ですか?

エンジニアくん

そう。条件がfalseになった瞬間に終わるから、回数が決まるんだ

初心者さん

なるほど!1回ずつの動きを見ると分かりやすいですね!


初心者が一番つまずくのはここです。
1回ごとに何が起きているのかを見てみましょう。

C
for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

1回目

  • 初期化:i = 0
  • 条件:0 < 3 → true
  • 実行:0を出力
  • 更新:i++ → i = 1

2回目

  • 条件:1 < 3 → true
  • 実行:1を出力
  • 更新:i++ → i = 2

3回目

  • 条件:2 < 3 → true
  • 実行:2を出力
  • 更新:i++ → i = 3

4回目(ここがポイント)

  • 条件:3 < 3 → false
    ここで終了

💡 なぜ「3回」実行されるのか

  • 条件が falseになった瞬間に終了
  • 更新(i++)は 処理のあとに行われる

👉 だから「0,1,2の3回」になる


🧠 イメージで理解する

i=0 → 実行
i=1 → 実行
i=2 → 実行
i=3 → 終了

👉 「条件を満たしている間だけ繰り返す」と覚えるとOK


よく使うパターン

① カウントアップ

C
for (int i = 0; i < 10; i++)

→ 0〜9


② カウントダウン

C
for (int i = 10; i > 0; i--)

→ 10〜1


③ 配列処理

C
int arr[3] = {10, 20, 30};

for (int i = 0; i < 3; i++) {
    printf("%d\n", arr[i]);
}

④無限ループ

C
for (;;) {
    // 無限ループ
}

組み込み開発ではよく使われます。

(メインループなど)


⚠️ よくある勘違い

この2つの違い

C
for (int i = 0; i < 3; i++)
C
for (int i = 1; i <= 3; i++)

👉 どちらも3回だが、中身が違う

書き方出力
i < 30,1,2
i <= 31,2,3

breakとcontinueの違い

for文では、ループの途中で処理を変えたいことがあります。
そのときに使うのが breakcontinue です。


break(ループを完全に終了)

C
for (int i = 0; i < 10; i++) {
    if (i == 5)
        break;

    printf("%d\n", i);
}

実行結果

C
0
1
2
3
4

👉 iが5になった瞬間にループ自体が終了します


continue(その回だけスキップ)

C
for (int i = 0; i < 5; i++) {
    if (i == 2)
        continue;

    printf("%d\n", i);
}

実行結果

C
0
1
3
4

👉 i=2のときだけ処理を飛ばして、次のループへ進む


ここで使用しているif文についてはこちらの記事で解説しています。

💡 breakとcontinueの違いまとめ

breakcontinue
動きループ終了次のループへ
よく使う場面条件を満たしたら終了特定条件だけスキップ

🧠 よくあるつまずきポイント

初心者はよくこう思います👇

初心者さん

continueって途中で終わるの?

→ ❌違います
ループは続くが、その回だけ処理しない


breakとcontinueの違いの詳細はこちらの記事で解説しています。

🔥 while文との違い

for文とwhile文はどちらもループですが、
使いどころが違います

for文

for(初期化;条件式;更新式)for (初期化; 条件式; 更新式)

C
for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

while文

C
int i = 0;

while (i < 3) {
    printf("%d\n", i);
    i++;
}

while文についてはこちらの記事で解説しています。

💡 実は同じことができる

👉 for文はこう書き換えられる

C
int i = 0;

while (i < 3) {
    printf("%d\n", i);
    i++;
}

🎯 違いは「書き方」ではなく「用途」

観点for文while文
向いている処理回数が決まっている条件で繰り返す
可読性高い(まとまってる)状況次第
実務での使い方配列・ループ処理状態監視・待ち

goto文でもループ処理は可能ですが、現在はあまり使われません。

🧠 具体的なforとwhileの使い分け

for文を使う場面

  • 配列を順番に処理する
  • 決まった回数だけ繰り返す

👉 「何回やるか」が明確


while文を使う場面

  • ボタンが押されるまで待つ
  • センサー値が変わるまでループ
  • 通信待ち

👉 「いつ終わるか」が不明


⚡ 組み込み目線の重要ポイント

C
while (1) {
    // メインループ
}

👉 無限ループで状態を監視する


💥 よくあるミス

whileで更新を忘れる

C
int i = 0;

while (i < 3) {
    printf("%d\n", i);
    // i++ を忘れる
}

👉 無限ループになる


forなら防げる

C
for (int i = 0; i < 3; i++)

👉 更新忘れが起きにくい


まとめ

  • for文は繰り返し処理の基本
  • 初期化・条件・更新を1行で書ける
  • 1ループごとの動きを理解すると一気に分かる
  • 回数が決まっている処理に向いている

この記事が参考になった方へ

制御構文を含むC言語の基本文法をこちらの記事で整理しています。

技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。

小さなご相談からでもお気軽にご連絡ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

組み込みソフトエンジニアとして働きながら、
C言語・メモリ・ポインタなどの基礎から実務まで解説しています。

副業・キャリアについても実体験ベースで発信中です。

X(旧Twitter)でも発信しています
👉 Xはこちら

▼まずはここから読むのがおすすめ
C言語文法シリーズ
メモリ領域解説シリーズ

コメント

コメントする


目次