C#入門⑧ for文 ── 同じことを、くり返す
前回まで、if文・switch文という「分かれ道」をやってきました。
今回は、プログラミング第二の山場。for文(フォーぶん)です。同じことを何度もくり返す、コンピュータがいちばん得意なことです。
for文とは、「決まった回数だけ、くり返す」しくみです。
なぜ、くり返しが必要なのか
たとえば「こんにちは」を5回表示したいとします。今までの知識だと、こう書くしかありません。
Console.WriteLine("こんにちは");
Console.WriteLine("こんにちは");
Console.WriteLine("こんにちは");
Console.WriteLine("こんにちは");
Console.WriteLine("こんにちは");
5回ならまだしも、100回だったら? 同じ行を100回コピーするなんて、現実的ではありません。
そこで使うのが、くり返し(for文)です。「これを100回くり返して」と一言で命令できます。コンピュータは、こういう単純なくり返しが、何より得意なのです。
書き方を見てみる
「こんにちは」を5回表示する例です。
for (int i = 0; i < 5; i++)
{
Console.WriteLine("こんにちは");
}
これで「こんにちは」が5回表示されます。
for のカッコの中に、3つのことが、セミコロン(;)で区切って書かれています。順番に見てみましょう。
for (int i = 0; i < 5; i++)
① ② ③
- ①
int i = 0… カウント用の箱iを作り、0からスタート - ②
i < 5… 「i が 5 より小さい間」くり返す(これが続ける条件) - ③
i++… 1回くり返すごとに、i を1増やす
この i は、いま何回目かを数える「カウンター」です。
くり返しの流れを追ってみる
「なんとなく書ける」けど「なぜ動くか分からない」となりがちなので、流れを追ってみます。
for (int i = 0; i < 5; i++)
{
Console.WriteLine(i); // i の値を表示してみる
}
これを実行すると、こうなります。
0
1
2
3
4
動きはこうです。
iは0からスタート- 「0 < 5?」→ true。中を実行(0を表示)。i を1増やす
- 「1 < 5?」→ true。中を実行(1を表示)。i を1増やす
- ……これをくり返す
- 「5 < 5?」→ false。くり返し終了
i が0,1,2,3,4 と変わりながら、5回くり返されました。i < 5 が false になった瞬間に、ループが終わります。
なぜ 0 から始めて 5 で終わるのか
初心者が必ず「?」となるのが、「0から始まって、4で終わる(5回)」という点です。
「5回なら1から5までじゃないの?」と思いますよね。
これは、i = 0 から始めて i < 5(5未満)まで、という書き方だからです。
0, 1, 2, 3, 4 ——数えてみると、ちょうど5個。きちんと5回くり返されています。
慣れるまでは不思議ですが、プログラミングでは 「0から数え始める」ことがとても多いです。「0スタート、回数ぶんだけ未満(<)」と、ワンセットで覚えてしまうとラクです。
i は、ただ数えるだけじゃない
このカウンター i、表示にも使えます。たとえば、1から10までの数を順に表示するなら、こうです。
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
今度は i = 1 スタート、i <= 10(10以下)まで。1から10までが順に表示されます。
i の使い方しだいで、「1から100まで足す」「九九を表示する」など、いろんなことができます。カウンターの値を、計算や表示にうまく使うのが、for文を使いこなすコツです。
つまずきポイント
初心者がはまりやすいのが、終わらないくり返し(無限ループ)です。
for (int i = 0; i < 5; i++)
{
// ... 中で i を変えてしまったり、③のi++を書き忘れたり
}
③の i++(iを増やす)を書き忘れると、i がずっと0のまま。「0 < 5」がずっと true になって、永遠にくり返し続けます。
もしプログラムが止まらなくなったら、まず「カウンターはちゃんと増えているか?」を疑ってみてください。
まとめ
for文は、決まった回数だけくり返すしくみ。
for (int i = 0; i < 回数; i++)
{
くり返したい処理
}
- ① カウンターを作ってスタート
- ② 続ける条件
- ③ 1回ごとにカウンターを増やす
そして、よく使うのは「0スタート、回数ぶんだけ未満(<)」。
次回は、もうひとつのくり返し while文 です。for文との使い分けが分かると、くり返しの理解がぐっと深まります。

