Java入門⑤ 繰り返し(for文)

Java入門 Java入門

前回のおさらい

前回はwhile文を学習しました。

構文意味適した用途
while(条件){
 処理
}
条件がtrueの間、処理を繰り返す。回数が明確でない処理。

ざっとこんな感じですね。
今回学ぶ「for文」も動作自体は同じ「繰り返し」、ただ書き方や動作などに少しの違いはあるので注意していきましょう!

for文とは?

for文は、条件が満たされる間
決められた回数だけ処理を繰り返す
ための構文です。

まずは基本構文を見てみましょう。

for (初期化; 条件式; 変化式) {
    繰り返す処理;
}

各部分の意味

部分説明
①初期化カウンタ変数をセット(例:int i = 0;)
②条件式繰り返すかどうかの判断(例:i < 5)
③変化式1回ごとに変化させる処理(例:i++)

簡単に言うと
①:スタートはどこから始めるのか(例では0からスタート
②:どれくらい繰り返すのか(例では変数iが4になるまで繰り返します
③:1回繰り返すごとにどんな変化をするのか
  (例ではi++なので、1回ごとにiに+1していきます)

最も基本的な for文の例

「0〜4 までの数字を表示する」場合

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

処理の流れを図解すると…

  1. i = 0(初期化)
  2. i < 5 → true → 処理実行
  3. i++(iに1加える)
  4. 再び i < 5 の判定
  5. 条件が false になるまで繰り返す

実務でよく使う for文の例

配列をループで回す

配列の全要素を表示したいとき:

int[] numbers = {10, 20, 30, 40};

for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}

・配列は同じ複数のデータ型の値を格納するデータ構造です。

ポイント

  • numbers.length を使うことで、配列の長さが変わっても対応できる
  • 基本的にはこの書き方が最も多い

逆順(後ろから前へ)ループする方法

後ろから表示したいときは、初期値と条件を逆にするだけ。

int[] scores = {50, 60, 70, 80};

for (int i = scores.length - 1; i >= 0; i--) {
    System.out.println(scores[i]);
}

また、配列は 先頭の値から順に 0・1・2・3 …… という番号(インデックス)が振られています。
一見すると値が4つあるので「最後の番号は4?」と思うかもしれませんが、実際には 0 から始まるので最後の番号は 3 です。

では、なぜ「0から」始めるのでしょうか?

for文の最初に

int i = 0;

がよく使われる理由は、配列のインデックスと一致させるためです。

もし i を 1 から始めるとどうなるでしょう?

以下の比較を見てください。

ループ回数i の値配列のインデックス取り出される要素
1回目10先頭の要素
2回目212番目の要素
3回目323番目の要素

見ての通り、
i とインデックスが1ずれてしまい、非常に分かりづらくなります。

そこで、

配列のインデックスに合わせて

int i = 0;

から始めるのが基本

となっています。

i = 0 としておけば、

  • i = 0 → インデックス 0(先頭)
  • i = 1 → インデックス 1
  • i = 2 → インデックス 2

というように、i の値と配列の位置がぴったり一致するため、理解しやすく、バグも減ります。

for文のよくあるミス

❌ 無限ループになる例

for (int i = 0; i < 5; ) {
    System.out.println(i);
}

変化式 i++ を書き忘れると
ずっと同じ処理が繰り返され、
プログラムが止まりません。

✔ 正しくは

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

for文の応用:三角形を作ってみよう

少し応用して、for文を入れ子にすると
簡単な形を表示できます。

例:* を使って三角形を表示

for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print("*");
    }
    System.out.println();
}

出力イメージ

*
**
***
****
*****

初心者が最初につまずくポイントなので、
このタイミングでしっかり覚えておくと今後にも役立ちます!

まとめ

  • for文は 繰り返し処理 を書くための構文
  • 基本は「初期化 → 条件 → 変化」の流れ
  • 配列やリストを回す場面で必須
  • 忘れがちな i++ の書き忘れに注意
  • ループの入れ子で表現の幅が広がる

ではでは!次回!:Java入門⑥ 配列(Array)を使ってみよう!

コメント

タイトルとURLをコピーしました