【Java】最近のSwitch文の書き方を試してみる

先日JavaをJava13へアップグレードしました。

私が仕事で使っていたJavaのバージョンは7でしたのでこの間に書き方にも様々な変更がありました。その中でも今回は今風のswitch文を紹介したいと思います。

書き方


switch文と言えば今までは以下のように書いていました。

public class Main {

    public static void main(String[] args) {

        int dayValue = 2;
        String week = "default";

        switch(dayValue){
            case 1:
                week = "Monday";
                break;
            case 2:
                week = "Tuesday";
                break;
            case 3:
                week = "Wednesday";
                break;
            case 4:
                week = "Thursday";
                break;
            case 5:
                week = "Friday";
                break;
            case 6:
                week = "Saturday";
                break;
            case 7:
                week = "Sunday";
                break;
            default:
        }
        System.out.println(week);
    }
}

switch文は見た目にもわかりやすく、初心者にも使いやすい文だと思います。

しかしケースが増えると行数が増えて見づらくなったり、時にはbreakが抜けてしまってバグの原因になることもありました。これが最近のJava以下のように書くことが出来ます。

public class Main {

    public static void main(String[] args) {

        int dayValue = 2;
        String week = "default";
        switch(dayValue){
            case 1 -> week = "Monday";
            case 2 -> week = "Tuesday";
            case 3 -> week = "Wednesday";
            case 4 -> week = "Thursday";
            case 5 -> week = "Friday";
            case 6 -> week = "Saturday";
            case 7 -> week = "Sunday";
        };
        System.out.println(week);
    }
}

breakを書かなくてもcase内で止まるようになり、見た目にも簡潔になっています。

さらに以下のように条件をまとめて書くことも可能です。

public class Main {

    public static void main(String[] args) {

        int dayValue = 8;
        String week = "default";
        switch(dayValue){
            case 1 -> week = "Monday";
            case 2 -> week = "Tuesday";
            case 3 -> week = "Wednesday";
            case 4 -> week = "Thursday";
            case 5 -> week = "Friday";
            case 6 -> week = "Saturday";
            case 7,8,9 -> week = "Sunday";
        };
        System.out.println(week);
    }
}

14行目に条件を追加しています。こちらもきちんと動作してSundayが表示されます。

進化する言語


今は業務でJavaを使っておらず古い知識のまま止まってしまっています。Javaに限らず、一度覚えた書き方というものはずーっと書いてしまいがちです。こういった便利な書き方が出てきているので今後もバージョンアップに合わせて把握していきたいと思います。

soon
  • soon
  • 1986年生まれのjavaプログラマー。28歳の時に7年働いた販売士からプログラマーに転職をする。常駐先を転々としながら日々生きています。