【Java】最近のSwitch文の書き方を試してみる
2019-11-17
2019-11-27

先日JavaをJava13へアップグレードしました。
私が仕事で使っていたJavaのバージョンは7でしたのでこの間に書き方にも様々な変更がありました。その中でも今回は今風のswitch文を紹介したいと思います。
書き方
switch文と言えば今までは以下のように書いていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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以下のように書くことが出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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内で止まるようになり、見た目にも簡潔になっています。
さらに以下のように条件をまとめて書くことも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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に限らず、一度覚えた書き方というものはずーっと書いてしまいがちです。こういった便利な書き方が出てきているので今後もバージョンアップに合わせて把握していきたいと思います。
関連記事
AppleローンでiMac2019を購入しました。
【初心者向け】Visual Studoi2019Community版のインストールを解説(Windows10)
[初めて]CentOS7にPHP7.2をインストールしてみる
未経験プログラマー物語【第二章 研修編⑥】Javaを学ぶ
プログラマーになりたいならスクールに通うより就職先を探したほうがいいのでは?
未経験プログラマー物語【第三章 テスター編①】初めての現場
【2018年】今年記憶に残ったプログラマーの名言(迷言)
【iPhone】SIMフリーでY!モバイルにしたけどインターネットに繋がらない対処法
仕事でC#を初めて約半年が経ちました
LPIC Level1 101に合格しました
スポンサーリンク