C言語入門|for 文の高度な書き方:初期化・条件・更新を使いこなす

for 文にだいぶ慣れてきたころ、
こんな疑問が出てきませんか?😊

「いつも同じ形でしか書けないの?」
「10回繰り返す以外のことってできる?」

実は for 文は、
初期化・条件・更新の3つを工夫するだけで、かなり自由な繰り返し
が書ける、とても柔軟な構文なんです ✨

ここでは、for 文の基本を一段階レベルアップさせて、
“ちょっと高度な for 文の書き方” を体験していきましょう。

for 文は3つの部品で動いている 🔧

まず大前提として、for 文は次の3つの要素で構成されています。

部分役割
初期化処理繰り返し開始前に1回だけ実行される。
繰り返し条件ループを続けるかどうかを判定する。
繰り返し時処理1回のループが終わるごとに実行される。

基本形はこの形ですね。

for (①初期化処理; ②繰り返し条件; ③繰り返し時処理) {
    処理
}

この 3つの部品をどう書くか によって、
for 文の動きはガラッと変わります 👍

① ループ変数を1から始める

「0からじゃなくて、1から数えたい」
そんな場面、意外と多いですよね 😊

プロジェクト名:5-8-1 ソースファイル名: sample5-8-1.c

#include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 3; i++) {
        printf("%d番目のステップです\n", i);
    }
    return 0;
}

実行結果

1番目のステップです
2番目のステップです
3番目のステップです

初期化処理を i = 1 にするだけで、
人間の感覚に近いカウント が実現できます。

② ループ変数を2ずつ増やす

「1つ飛ばしで処理したい」
「偶数だけ扱いたい」

そんなときは、繰り返し時処理を工夫します。

プロジェクト名:5-8-2 ソースファイル名: sample5-8-2.c

#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 10; i += 2) {
        printf("現在の値:%d\n", i);
    }
    return 0;
}

実行結果

現在の値:0
現在の値:2
現在の値:4
現在の値:6
現在の値:8

i++ を i += 2 に変えただけで、
2ずつ進むループ になります。

③ カウントダウンする for 文 ⏬

for 文は、
増える方向だけでなく 減る方向 にも使えます。

プロジェクト名:5-8-3 ソースファイル名: sample5-8-3.c

#include <stdio.h>

int main(void)
{
    for (int i = 3; i > 0; i--) {
        printf("あと%d回です\n", i);
    }
    printf("スタート!\n");
    return 0;
}

実行結果

あと3回です
あと2回です
あと1回です
スタート!

初期化・条件・更新をセットで考えると、
カウントダウンも自然に書けますね 😊

④ ループ変数を初期化しない書き方

for 文では、
初期化処理を省略 することもできます。

プロジェクト名:5-8-4 ソースファイル名: sample5-8-4.c

#include <stdio.h>

int main(void)
{
    int i = 0;

    for (; i < 3; i++) {
        printf("外で宣言したi:%d\n", i);
    }
    return 0;
}

この書き方は、

  • ループ変数を for 文の外で使いたい。
  • 初期値を別の処理で決めたい。

といった場面で使われます。

💡 セミコロンは必ず残す点に注意しましょう。

⑤ 更新処理を書かない for 文(注意!)

繰り返し時処理も、省略できます。

for (int i = 0; i < 3;) {
    printf("手動で更新します\n");
    i++;
}

この場合、
更新はブロック内で自分で行う必要があります

もし更新を忘れると…😱

  • 条件がずっと真のまま
  • 無限ループに突入

という事故が起こります。

for 文は while 文の進化形 ✨

ここまで見てきたように、
for 文は決して「決まった回数だけの構文」ではありません。

  • 初期化をどうするか
  • 条件をどう書くか
  • 更新をどう行うか

この3つを自由に組み合わせることで、
かなり表現力の高い繰り返し処理 が書けるようになります。

まとめ 😊

  • for 文は初期化・条件・更新の3点セット
  • 数え方・進み方・方向を自在に変えられる
  • 便利な分、無限ループには要注意

ここまで理解できれば、
for 文はもう「難しそうな構文」ではありません 👍