zenet_logo

-株式会社ゼネット技術ブログ-

【Java】慣れたら便利!拡張for文の使い方

1.はじめに

こんにちは、今年社会人一年目の毛利です。
初めてのブログなので拙いとは思いますが
よろしくお願いします。

本記事はJavaで使える拡張for文の使い方についての記事となります。
また、開発環境はeclipseで行っています。

2.拡張for文とは

拡張for文とは配列から要素を全件処理することに特化した繰り返し処理です。
形が通常のfor文とは少し違い、以下のような形をしています。

例として私の好きなゲームを配列に入れて出力してみようと思います。


ソースコード(拡張for文)

public class SampleExFor {
    public static void main(String[] args) {
        String[] list = {"ApexLegends", "モンスターハンター", "スプラトゥーン"};
        System.out.println("好きなゲーム");
        for (String exList : list) {             //int型の変数exListにlistの要素を格納
            System.out.println(exList);          //listの中身を全件出力
        }
    }
}

出力結果(拡張for文)

好きなゲーム
ApexLegends
モンスターハンター
スプラトゥーン

このように配列の中身が全て出力されました。

3.通常のfor文となにが違う?

先ほどのサンプルコードを通常のfor文で書く場合は以下のようになります。

ソースコード(通常for文)

public class SampleFor {
    public static void main(String[] args) {
        String[] list = {"ApexLegends", "モンスターハンター", "スプラトゥーン"};
        System.out.println("好きなゲーム");
        for(int i = 0; i < 3; i++) {
            System.out.println(list[i]);
        }
    }
}

出力結果(通常for文)

好きなゲーム
ApexLegends
モンスターハンター
スプラトゥーン

ここで例えばlistに新しく"大乱闘スマッシュブラザーズ"を追加したとします。
その場合、拡張for文であればコードを変更せずとも4件目が出力されます。対して通常のfor文の場合は条件を変更しないと出力は3件のままです。


では拡張for文を使うメリットとデメリットについて説明したいと思います。

メリット

拡張for文は繰り返すための条件や処理を記述する必要がありません。
そのため単純にコードの量が減るので見やすくなるという利点もあります。
また、条件や処理を書かなくていいとその分、エラーや無限ループに陥る危険を減らすことが出来ます。
通常のfor文で全件分繰り返す場合は配列の長さを取得して、処理が終わればカウントを増やすといった処理が必要になります。

デメリット

拡張for文を使う上で難しいことは使い分けの判断です。
場合によっては通常のfor文の方が良い場合もあります。
例えば、何周目かといった情報が欲しいときには処理の中でカウントを行う変数を別途用意する必要があり、それをするならば通常のfor文の方が単純で済みます。

4.おわりに

繰り返しになりますが、拡張for文は配列の全件処理をすることに特化した繰り返し処理です。使いどころが限定的ではあるものの、その分見やすかったり、記述量が少なく済んだりと慣れればとても使いやすいです。

今までのやり方だけに固執せず、便利なものはどんどん活用していって欲しいと思います。