Java入門⑧ for文 ── 同じことを、くり返す

前回まで、if文・switch文という「分かれ道」をやってきました。

今回は、プログラミング第二の山場、for文(フォーぶん)です。同じことを何度もくり返す、コンピュータがいちばん得意なことです。

for文とは、「決まった回数だけ、くり返す」しくみです。

なぜ、くり返しが必要なのか

「こんにちは」を5回表示したいとします。今までの知識だと、同じ行を5回書くしかありません。100回だったら? 現実的ではありませんよね。

そこで使うのが、くり返し(for文)です。「これを100回くり返して」と一言で命令できます。コンピュータは、こういう単純なくり返しが、何より得意なのです。

書き方を見てみる

「こんにちは」を5回表示する例です。

for (int i = 0; i < 5; i++) {
    System.out.println("こんにちは");
}

これで「こんにちは」が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++) {
    System.out.println(i);   // i の値を表示してみる
}

実行すると、こうなります。

0
1
2
3
4

動きはこうです。

  1. i は0からスタート
  2. 「0 < 5?」→ true。中を実行(0を表示)。i を1増やす
  3. 「1 < 5?」→ true。中を実行(1を表示)。i を1増やす
  4. ……これをくり返す
  5. 「5 < 5?」→ false。くり返し終了

i が0,1,2,3,4 と変わりながら、5回くり返されました。

なぜ 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++) {
    System.out.println(i);
}

今度は i = 1 スタート、i <= 10(10以下)まで。1から10までが順に表示されます。

i の使い方しだいで、「1から100まで足す」「九九を表示する」など、いろんなことができます。カウンターの値を、計算や表示にうまく使うのが、for文を使いこなすコツです。

つまずきポイント

学生がはまりやすいのが、終わらないくり返し(無限ループ)です。

③の i++(iを増やす)を書き忘れると、i がずっと0のまま。「0 < 5」がずっと true になって、永遠にくり返し続けます

もしプログラムが止まらなくなったら、まず「カウンターはちゃんと増えているか?」を疑ってみてください。

まとめ

for文は、決まった回数だけくり返すしくみ。

for (int i = 0; i < 回数; i++) {
    // くり返したい処理
}
  • ① カウンターを作ってスタート、② 続ける条件、③ 1回ごとに増やす
  • よく使うのは「0スタート、回数ぶんだけ未満(<)」

次回は、もうひとつのくり返し while文 です。