【Java】for文を完全マスター!基本構文から応用まで丁寧に解説

Java

Javaを学び始めたとき、多くの人が最初に出会う制御構文が「for文」です。
繰り返し処理を効率的に行うfor文は、プログラミングにおける基本中の基本。
しかし、初学者にとっては少しややこしく感じるかもしれません。

この記事では、Javaのfor文について、基礎から実践的な使い方までを丁寧に解説していきます。

for文とは?

for文は、一定の条件を満たす間、特定の処理を繰り返し実行するための制御構文です。Javaにおいて、同様の繰り返し処理を行う構文としてはwhile文do-while文もありますが、for文は特に回数が決まっている繰り返しに適しています。

for文の基本構文

for (初期化; 条件式; 更新処理) {
    // 繰り返し実行される処理
}

各部分の意味:

部分説明
初期化繰り返しの前に1回だけ実行される処理
条件式trueの間、繰り返し処理が続く
更新処理繰り返しのたびに実行される処理

例:1から5までの数字を出力する

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

出力:

1
2
3
4
5

for文の流れを図解で理解

初期化 → 条件式チェック → 本体処理 → 更新処理 → 条件式チェック → ...

この流れを頭に入れておくと、for文の挙動が自然と理解できるようになります。

ネストされたfor文(多重ループ)

for文の中にfor文を書くことも可能です。これをネスト(多重ループ)と呼びます。

例:九九表を出力する

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

for-each文(拡張for文)

Javaでは配列やコレクションを簡単にループ処理するために、拡張for文(for-each)が用意されています。

構文:

for (型 変数 : 配列やリスト) {
    // 要素ごとの処理
}

例:

String[] fruits = {"apple", "banana", "cherry"};

for (String fruit : fruits) {
    System.out.println(fruit);
}

break文とcontinue文で制御を追加

break文:ループを途中で抜ける

for (int i = 1; i <= 10; i++) {
    if (i == 5) break;
    System.out.println(i);
}
// 1〜4まで表示

continue文:その回の処理をスキップ

for (int i = 1; i <= 5; i++) {
    if (i == 3) continue;
    System.out.println(i);
}
// 3以外を表示

for文を使う場面の具体例

文字列の逆順表示:

String str = "hello";
for (int i = str.length() - 1; i >= 0; i--) {
    System.out.print(str.charAt(i));
}
// 出力: olleh

配列の合計値を求める:

int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;

for (int num : numbers) {
    sum += num;
}

System.out.println("合計: " + sum);

よくあるエラーと注意点

無限ループの例:

for (int i = 0; i >= 0; i++) {
    // 条件が永遠にtrue → 無限ループ
}

配列の範囲外アクセス:

int[] arr = {1, 2, 3};
for (int i = 0; i <= arr.length; i++) {
    // i == 3のときにエラー(IndexOutOfBoundsException)
}

その他例文

例1:偶数のみ出力するプログラム

for (int i = 1; i <= 20; i++) {
    if (i % 2 == 0) {
        System.out.println(i);
    }
}

例2:配列の中から最大値を見つける

int[] nums = {12, 45, 7, 89, 23};
int max = nums[0];

for (int i = 1; i < nums.length; i++) {
    if (nums[i] > max) {
        max = nums[i];
    }
}

System.out.println("最大値: " + max);

まとめ

Javaのfor文はシンプルながら非常に強力な繰り返し構文です。次のポイントを押さえておきましょう。

  • 回数が決まっている繰り返しに最適
  • 配列やリストには拡張for文が便利
  • breakやcontinueでループを柔軟に制御
  • ネストで複雑な処理も可能

for文を自在に扱えるようになると、Javaでのコーディングの幅が一気に広がります。
初心者のうちはまず、「実際にコードを書いて動かしてみる」ことが大切です。
ぜひたくさん手を動かしてみてください!

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