C言語入門|for 文のループ変数:基本ルールと3つの重要ポイント

for 文を書いていると、
必ず登場するのが ループ変数 です。

「この i って、普通の変数と同じでいいんですか?」
「for 文が終わったあとも使えますか?」

そんな疑問、よく出てきますよね 😊

結論から言うと、
ループ変数は普通の変数とほぼ同じだけど、いくつか大事なルールがある
という位置づけになります。

ここでは、for 文のループ変数について
必ず押さえておきたい3つのポイント を、
具体例と一緒にやさしく整理していきましょう ✨

ループ変数って何をしている変数?

for 文では、次のような書き方をよく見かけます。

for (int i = 0; i < 3; i++) {
    処理
}

この i が ループ変数 です。

ループ変数は、

  • 今、何回目の繰り返しか
  • どこまで処理が進んでいるか

を管理するための変数で、
for 文の繰り返しをコントロールする司令塔 のような役割を持っています 👍

ポイント1:ループ変数の名前は自由 😊

ループ変数の名前は、
好きな名前を付けてOK です。

for (int count = 0; count < 3; count++) {
    printf("カウント中です\n");
}

このように、
count や index、step などを使っても問題ありません。

とはいえ、実際の現場や教材では、

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

のように、
1文字の変数名 がよく使われます。

これは、

  • integer(整数)
  • index(添字)

の頭文字として使われてきた慣習があるからです。

短くて読みやすく、
「これはループ用の変数だな」と一目で分かるのもメリットですね 😊

ポイント2:ループ変数はブロック内で自由に使える

ループ変数も、れっきとした変数です。
そのため、for 文のブロック内では
計算にも表示にも使えます

サンプルプログラム

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

#include <stdio.h>

int main(void)
{
    for (int i = 0; i < 3; i++) {
        printf("%d回目のチャレンジです!\n", i + 1);
    }
    return 0;
}

実行結果

1回目のチャレンジです!
2回目のチャレンジです!
3回目のチャレンジです!

この例では、

  • i は 0 から始まる
  • そのままだと 0回目になってしまう

という理由から、
表示時に i + 1 を使っています。

💡 このように、ループ変数を加工して使うのはとても一般的 です。

ポイント3:ループ変数は for 文の外では使えない ⚠️

ここが、初心者がつまずきやすいポイントです。

for 文の初期化処理で宣言したループ変数は、
for 文のブロック内でのみ有効 です。

for (int i = 0; i < 3; i++) {
    printf("処理中\n");
}

printf("%d\n", i);   // ここでは使えない

このコードは、
コンパイルエラーになります。

なぜなら、
i は for 文のブロックを抜けた瞬間に 消滅する変数 だからです。

これは、以前学んだ if 文や while 文の
ブロック内変数のスコープ と同じ考え方ですね 😊

  • for 文の中:ループ変数は存在する。
  • for 文の外:ループ変数は存在しない。

「for 文という箱の中だけで生きている変数」
とイメージすると、かなり分かりやすくなります 👍

どうしてこのルールがあるの?

理由はシンプルです。

  • 使い終わった変数を外に持ち出さない。
  • 意図しない再利用を防ぐ

ためです。

ループ変数は
繰り返し処理専用の一時的な変数 として扱われるので、
for 文の外では使えないほうが安全なんですね 😊

まとめ:ループ変数の3つの重要ポイント

ポイント内容
① 名前自由に決められる(i が定番)
② 利用範囲for 文のブロック内では自由に使える。
③ スコープfor 文を抜けると使えなくなる。

この3つを理解しておけば、
for 文を書くときに迷うことがグッと減ります ✨