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
文も使いたいと思いました。
まだまだ他にも進化していることがありそう。
コメント