【Java】最近のSwitch文の書き方を試してみる
2019-11-17
2019-11-27
先日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に限らず、一度覚えた書き方というものはずーっと書いてしまいがちです。こういった便利な書き方が出てきているので今後もバージョンアップに合わせて把握していきたいと思います。