カテゴリ: Java 更新日: 2025/12/19

Javaの繰り返し処理を完全解説!初心者でもわかるwhile, for, 拡張forの使い方

繰り返し(while, for文)
繰り返し(while, for文)

先生と生徒の会話形式で理解しよう

生徒

「Javaで同じ処理を何度も繰り返す方法ってありますか?」

先生

「良い質問ですね!Javaには、同じ操作を何度も実行するための繰り返し処理があります。while文やfor文、拡張for文を使えば簡単に実現できますよ。」

生徒

「それぞれどんな違いがあるんですか?」

先生

「それでは、基本的な使い方から一つずつ説明していきましょう!」

1. while文とは?

1. while文とは?
1. while文とは?

while文は、指定した条件が「真(true)」の間、繰り返し処理を実行するための構文です。繰り返し処理が必要な場面で非常に役立ちます。例えば、ユーザーが入力するまで待機する処理や、特定の条件が満たされるまで繰り返す処理を記述するのに使われます。


public class WhileExample {
    public static void main(String[] args) {
        int count = 0;
        
        while (count < 5) {
            System.out.println("カウント: " + count);
            count++;
        }
    }
}

このコードでは、count5より小さい間、while文の中の処理が繰り返し実行されます。countが増加していくことで、条件が満たされなくなった時点でループが終了します。

2. for文の基本的な使い方

2. for文の基本的な使い方
2. for文の基本的な使い方

for文は、繰り返し処理の回数が決まっている場合に便利です。開始条件、終了条件、増減を1行で指定できるため、コードがシンプルになります。ループ回数がはっきりしているときにはfor文を使うことが一般的です。


public class ForExample {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("ループ回数: " + i);
        }
    }
}

上記のコードでは、i0から始まり、5未満の間ループが実行されます。各繰り返しのたびにi1ずつ増加します。これによって、ループを簡潔に記述できます。

3. 拡張for文(foreach文)で配列やリストをループ

3. 拡張for文(foreach文)で配列やリストをループ
3. 拡張for文(foreach文)で配列やリストをループ

Javaには、配列やコレクションを簡単に繰り返し処理するための拡張forforeach)文もあります。通常のfor文よりもシンプルに書けるため、配列ArrayListの要素を順番に処理する際に便利です。


public class EnhancedForExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        
        for (int number : numbers) {
            System.out.println("数字: " + number);
        }
    }
}

この例では、numbers配列の各要素が順番にnumberに代入され、for文内で処理されます。拡張for文を使うことで、インデックス操作を意識する必要がなく、コードがスッキリと書けます。

4. while文の実践パターン:カウンタ・センチネル・無限ループ+break

4. while文の実践パターン:カウンタ・センチネル・無限ループ+break
4. while文の実践パターン:カウンタ・センチネル・無限ループ+break

whileは「条件が成り立つ間ずっと」動かしたいときに向いています。カウンタで回数制御、センチネル(終了値)で停止、無限ループ+breakで明示終了などの書き方があります。

public class WhilePatterns {
    public static void main(String[] args) {
        // 4.1 カウンタで5回
        int i = 0;
        while (i < 5) {
            System.out.println("count = " + i);
            i++;
        }

        // 4.2 センチネル(負数が来たら終了)
        int[] inputs = {3, 8, 2, -1, 4};
        int sum = 0; int idx = 0;
        while (idx < inputs.length && inputs[idx] >= 0) {
            sum += inputs[idx++];
        }
        System.out.println("合計 = " + sum);

        // 4.3 無限ループ+break(条件を満たしたら抜ける)
        int n = 0;
        while (true) {
            n += 3;
            if (n >= 12) break; // ここで終了
        }
        System.out.println("n = " + n); // 12
    }
}
条件が永遠にtrueだと無限ループになります。増減忘れや条件式に注意しましょう。

5. for文のバリエーション:減少・ステップ幅・複数制御・ネスト

5. for文のバリエーション:減少・ステップ幅・複数制御・ネスト
5. for文のバリエーション:減少・ステップ幅・複数制御・ネスト

forは回数が決まっている繰り返しに最適です。増減や同時制御、入れ子(ネスト)で表のような処理にも使えます。

public class ForVariants {
    public static void main(String[] args) {
        // 5.1 減少ループ
        for (int i = 5; i > 0; i--) {
            System.out.print(i + " "); // 5 4 3 2 1
        }
        System.out.println();

        // 5.2 ステップ幅2
        for (int i = 0; i <= 10; i += 2) {
            System.out.print(i + " "); // 0 2 4 6 8 10
        }
        System.out.println();

        // 5.3 複数変数を同時に制御
        for (int i = 0, j = 10; i < j; i++, j--) {
            System.out.println("i=" + i + ", j=" + j);
        }

        // 5.4 ネストで九九の一部
        for (int a = 1; a <= 3; a++) {
            for (int b = 1; b <= 3; b++) {
                System.out.printf("%d×%d=%d ", a, b, a * b);
            }
            System.out.println();
        }
    }
}

まとめ

まとめ
まとめ

本記事では、Javaの繰り返し処理について初心者向けに解説しました。while文、for文、拡張for文(foreach文)のそれぞれの特徴と使い方を学び、繰り返し処理の基本を理解することができました。特に、while文は条件が満たされる限りループを継続する場面で役立ち、for文は回数が明確な場合に簡潔な記述が可能です。また、拡張for文は配列やリストの処理をよりシンプルに書けるため、コードの可読性を高めます。 繰り返し処理を使いこなすことで、プログラムの効率化や柔軟性が向上します。これらの構文を使って、様々な条件やデータに応じた処理を実現していきましょう。


public class LoopRecap {
    public static void main(String[] args) {
        int count = 1;
        
        // while文
        while (count <= 3) {
            System.out.println("カウント: " + count);
            count++;
        }

        // for文
        for (int i = 0; i < 3; i++) {
            System.out.println("forループ: " + i);
        }

        // 拡張for文
        String[] fruits = {"りんご", "バナナ", "オレンジ"};
        for (String fruit : fruits) {
            System.out.println("フルーツ: " + fruit);
        }
    }
}
    

上記のコードは、while文、for文、拡張for文の違いを比較する例です。それぞれの繰り返し処理がどのように使われるかを復習するのに役立ちます。自分で実行してみて、動作を確認しましょう。

先生と生徒の振り返り会話

生徒

「先生、while文、for文、拡張for文の使い分けがよく分かりました!」

先生

「そうですね。繰り返し処理は、どの条件で使うかを明確にして選ぶことが大切です。例えば、条件に応じて繰り返したいときはwhile文、回数が決まっている場合はfor文が適しています。」

生徒

「配列やリストを処理するなら拡張for文が一番簡単ですね!」

先生

「その通りです。特に、インデックス操作が不要な場合に便利です。次回は、これらの繰り返し処理を使ってもっと実践的なプログラムを作ってみましょう。」

生徒

「ぜひ挑戦したいです!これから練習して理解を深めたいと思います。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaで繰り返し処理をする場合、どのような構文を使いますか?

Javaで繰り返し処理を行うには、while文、for文、拡張for文(foreach文)があります。これらを使い分けることで、柔軟なループ処理が可能です。

while文はどのようなときに使えばよいですか?

while文は、繰り返しの終了条件が動的に変わる場合に適しています。例えば、ユーザーの入力が必要な処理や、条件が満たされるまでループを続ける場合に便利です。

for文とwhile文の違いは何ですか?

for文は繰り返し回数が決まっている場合に適しており、開始条件、終了条件、増減操作を1行で指定できます。一方、while文は条件が満たされている限り繰り返し続ける構文で、終了条件が明確でない場合に使われます。

拡張for文(foreach文)は通常のfor文と何が違いますか?

拡張for文は、配列やコレクションの要素を順番に処理する際に使います。通常のfor文よりもシンプルで、インデックスを意識せずにループ処理ができます。

配列の要素を処理するのに最適なループは何ですか?

配列の要素を処理するには、拡張for文(foreach文)が最適です。簡潔で読みやすいコードを書くことができます。

for文でループ回数を指定するにはどうすればよいですか?

for文では、開始条件、終了条件、増減操作を指定します。例えば、「for (int i = 0; i < 5; i++)」と書くことで、0から4までの5回繰り返します。

while文の終了条件はどのように指定しますか?

while文では、繰り返しの条件を括弧内に記述します。条件が真(true)である間、ループが続行されます。例えば、「while (count < 10)」はcountが10未満の間繰り返します。

ループ処理で無限ループにならないようにするにはどうすればよいですか?

ループ内で条件が必ず変化するように注意してください。while文やfor文の中でカウンタを増減させる処理を忘れると無限ループになる可能性があります。

for文やwhile文で繰り返しを途中で終了するにはどうすればよいですか?

繰り返し処理を途中で終了するには、break文を使います。特定の条件が満たされたときにループを抜けることができます。

Javaの繰り返し処理を効率よく学ぶ方法は何ですか?

基本的な例を自分で書いて実行することが一番の近道です。while文、for文、拡張for文をそれぞれ試し、動作の違いを理解しましょう。
カテゴリの一覧へ
新着記事
JavaのDateTimeFormatterの使い方を完全ガイド!初心者でもわかる日付フォーマットの基本
Springの @ResponseBodyアノテーション完全ガイド!初心者でもわかる使い方
JavaのEnumとcloneメソッドを完全ガイド!初心者でもわかるjava.langパッケージの基礎
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.3
Java&Spring記事人気No3
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.4
Java&Spring記事人気No4
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.6
Java&Spring記事人気No6
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.7
Java&Spring記事人気No7
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう