JavaのSwitch式

  • 2020.10.31
  • 2021.01.24
  • Java
NO IMAGE


Java SE 12ではswitch式が導入されております。

ということで、どういうものなのか実装してみました。

0~6の範囲でランダムに数値を出して
それをSwitch文で判定して文字を返すコードになっています。

まずは旧式のSwitch文

import java.util.Random;

public class OldSwitch {
	public static void main(String[] args) {
        Random rand = new Random(); // ランダムで数値を出すため用

        System.out.println(getMassage(rand.nextInt(7)));
    }
    
    public static String getMassage(int namber) {
        String message = "";
        switch(namber) {
            case 0:
                message = "大吉";
                break;
            case 1:
                message = "吉";
                break;
            case 2:
                message = "中吉";
                break;
            case 3:
                message = "小吉";
                break;
            case 4:
                message = "末吉";
                break;
            case 5:
                message = "凶";
                break;
            case 6:
                message = "大凶";
                break;
            default:
                message = "?";
                break;
        };
        return message;
    }    
}


次は新しいSwitch式 (Java12以降でお試しください)

import java.util.Random;

public class NewSwitch {
	public static void main(String[] args) {
        Random rand = new Random(); // ランダムで数値を出すため用

        System.out.println(getMassage(rand.nextInt(7)));
    }
    
    public static String getMassage(int namber) {
        return switch(namber) {
            case 0 -> "大吉";
            case 1 -> "吉";
            case 2 -> "中吉";
            case 3 -> "小吉";
            case 4 -> "末吉";
            case 5 -> "凶";
            case 6 -> "大凶";
	    default -> "?";
        };
    }
}


やってることはどちらも同じです。
めちゃくちゃスマートになりました。

新しく->で出来るようになったのと、breakがいらなくなっています。
caseにヒットしたら勝手に戻ることになってるみたいです。

今回はそのままreturnして返してますが、String message = 等で受け取ることも可能です。

break書くのが面倒で、見やすいけどコードが長いことから
if文使ってましたが、これですとSwitch文も使いたいと思いました。

まだまだ他にも進化していることがありそう。

Javaカテゴリの最新記事