カテゴリ: Javaの配列 更新日: 2025/04/23

Java の配列をループで操作する「for 文」と「拡張 for 文」

096
Java の配列をループで操作する「for 文」と「拡張 for 文」

新人と先輩の会話形式で理解しよう

新人

「Java で配列の中の値を順番に処理するにはどうしたらいいですか?」

先輩

「配列の要素を順番に処理するには for 文や 拡張 for 文 を使うのが一般的だよ。」

新人

「for 文と拡張 for 文ってどう違うんですか?」

先輩

「それぞれの特徴や使い方を具体的な例を交えて説明していこう!」

1. 配列をループで操作するとは?(基本的な説明)

1. 配列をループで操作するとは?(基本的な説明)
1. 配列をループで操作するとは?(基本的な説明)

Java の配列には複数のデータを格納できますが、全てのデータを一度に処理する場合、ループを使うのが便利です。

例えば、配列のすべての値を順番に表示したい場合、手動で System.out.println() を書くのは大変ですが、ループを使えば簡単に処理できます。

2. for 文の基本的な書き方

2. for 文の基本的な書き方
2. for 文の基本的な書き方

Java の for 文は、配列の要素を順番に処理するのに適しています。基本的な構文は以下のようになります。

for 文の基本構文


public class ForLoopExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};

        for (int i = 0; i < numbers.length; i++) {
            System.out.println("インデックス " + i + " の値: " + numbers[i]);
        }
    }
}

インデックス 0 の値: 10
インデックス 1 の値: 20
インデックス 2 の値: 30
インデックス 3 の値: 40
インデックス 4 の値: 50

このように、for 文を使えば、配列のすべての要素を順番に取得できます。

3. for 文を使って配列のすべての要素を表示する方法

3. for 文を使って配列のすべての要素を表示する方法
3. for 文を使って配列のすべての要素を表示する方法

Java の for 文を使うことで、配列のすべての要素を一つずつ取得し、表示することができます。

for 文を使った配列の要素表示


public class ForLoopExample {
    public static void main(String[] args) {
        String[] fruits = {"りんご", "みかん", "ぶどう", "バナナ"};

        for (int i = 0; i < fruits.length; i++) {
            System.out.println("果物 " + (i + 1) + " : " + fruits[i]);
        }
    }
}

果物 1 : りんご
果物 2 : みかん
果物 3 : ぶどう
果物 4 : バナナ

for 文では、ループの回数を 配列の長さ に設定することで、すべての要素を順番に表示できます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 拡張 for 文の基本的な書き方

4. 拡張 for 文の基本的な書き方
4. 拡張 for 文の基本的な書き方

Java には 拡張 for 文(for-each) という構文があり、配列の要素を簡単に順番に処理できます。

拡張 for 文の基本構文


public class EnhancedForExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};

        for (int num : numbers) {
            System.out.println("値: " + num);
        }
    }
}

値: 10
値: 20
値: 30
値: 40
値: 50

拡張 for 文を使うと、配列のすべての要素を 変数 に一つずつ代入しながらループ処理を行います。

5. for 文と拡張 for 文の違い

5. for 文と拡張 for 文の違い
5. for 文と拡張 for 文の違い

通常の for 文と拡張 for 文には、それぞれ異なる特徴があります。

for 文のメリットとデメリット

  • インデックス(i)を使って要素を取得できる。
  • 配列の特定の位置を直接操作できる。
  • しかし、length を明示的に指定しなければならないため、コードが少し長くなる。

拡張 for 文のメリットとデメリット

  • インデックスを意識せずに、配列のすべての要素を簡単に処理できる。
  • ループの条件を書かなくて済むので、可読性が高い。
  • しかし、配列の要素を変更する必要がある場合には向かない。

for 文と拡張 for 文の使い分け

要素を変更する場合やインデックスが必要な場合は for 文を、単純にすべての要素を処理する場合は 拡張 for 文 を使うと便利です。

6. for 文と拡張 for 文を使い分けるポイント

6. for 文と拡張 for 文を使い分けるポイント
6. for 文と拡張 for 文を使い分けるポイント

for 文と拡張 for 文は、どちらも配列の要素をループ処理するための方法ですが、それぞれ得意な使い方があります。

for 文を使うべき場面

  • 配列のインデックス(位置)を使いたい場合
  • 特定の要素だけを変更したい場合
  • 配列の一部の要素だけを処理したい場合(例: 途中で処理を止める)

拡張 for 文を使うべき場面

  • 配列の全要素を処理する場合
  • インデックスを使わず、シンプルに記述したい場合
  • 配列の要素を変更する必要がない場合

使い分けの例


public class ForLoopComparison {
    public static void main(String[] args) {
        String[] colors = {"赤", "青", "緑", "黄色"};

        // for 文で特定の要素を変更
        for (int i = 0; i < colors.length; i++) {
            if (colors[i].equals("青")) {
                colors[i] = "水色"; // 青を水色に変更
            }
            System.out.println(colors[i]);
        }

        // 拡張 for 文で全要素を表示
        for (String color : colors) {
            System.out.println("色: " + color);
        }
    }
}

赤
水色
緑
黄色
色: 赤
色: 水色
色: 緑
色: 黄色

上記のように、for 文は特定の要素を変更するのに適しており、拡張 for 文はシンプルな処理に向いています。

7. 配列の中から特定の値を検索する方法(for 文を活用)

7. 配列の中から特定の値を検索する方法(for 文を活用)
7. 配列の中から特定の値を検索する方法(for 文を活用)

for 文を使えば、配列の中から特定の値を探すことができます。例えば、ある文字列が配列に含まれているかどうかを調べることが可能です。

for 文を使った配列の検索


public class ArraySearch {
    public static void main(String[] args) {
        String[] fruits = {"りんご", "みかん", "ぶどう", "バナナ"};
        String target = "ぶどう";
        boolean found = false;

        for (int i = 0; i < fruits.length; i++) {
            if (fruits[i].equals(target)) {
                found = true;
                System.out.println(target + " が見つかりました(インデックス " + i + ")");
                break;
            }
        }

        if (!found) {
            System.out.println(target + " は見つかりませんでした");
        }
    }
}

ぶどう が見つかりました(インデックス 2)

for 文を使って配列を検索し、見つかったら break を使って処理を中断することで、無駄なループを省略できます。

8. 練習問題:「for 文」と「拡張 for 文」を使った配列操作

8. 練習問題:「for 文」と「拡張 for 文」を使った配列操作
8. 練習問題:「for 文」と「拡張 for 文」を使った配列操作

ここまでの学習を活かして、以下の練習問題に挑戦してみましょう。

練習問題 1:for 文を使って配列の合計を求める

以下の配列の合計値を求めるプログラムを書いてみましょう。


public class ArraySum {
    public static void main(String[] args) {
        int[] numbers = {5, 10, 15, 20, 25};
        int sum = 0;

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

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

合計: 75

練習問題 2:拡張 for 文を使って配列の最大値を求める

次に、拡張 for 文を使って配列の最大値を求めるプログラムを作成してみましょう。


public class ArrayMax {
    public static void main(String[] args) {
        int[] numbers = {18, 42, 3, 97, 56};
        int max = numbers[0];

        for (int num : numbers) {
            if (num > max) {
                max = num;
            }
        }

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

最大値: 97

このように、拡張 for 文はインデックスを意識せずに値を順番に取得できるため、最大値を求めるような処理に適しています。

Javaの配列の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク