Javaのプログラミングを学び進める中で、繰り返しの条件判定をシンプルに記述するためのswitch文に出会うことでしょう。この記事では、そのswitch文の基本から、Java 14以降で利用可能になった”Enhanced Switch”まで、詳しく解説します。
switch文とは?
switch文は、変数や式の結果に応じて、複数のコードブロックのうちの一つを選んで実行する制御文です。この制御文を使うことで、if-elseの連鎖を避け、コードを見やすく保つことができます。
基本的な構文
switch (expression) {
case value1:
// value1に一致する場合の処理
break;
case value2:
// value2に一致する場合の処理
break;
...
default:
// どのcaseにも一致しない場合の処理
}
expression:この式の結果は、caseの値と比較されます。
case:expressionの結果と比較される値。一致する場合、その後のコードが実行されます。
break:現在のcaseからswitch文を抜け出すための命令。このbreakを省略すると、次のcaseも実行されることに注意。
default:どのcaseにも該当しない場合に実行されるブロック。省略可能ですが、予期せぬ挙動を避けるためには定義しておくことを推奨します。
Enhanced Switchの特徴
Java 14からは、switch文が大きく強化されました。以下は、その主な特徴です。
値の返却
int dayOfWeek = switch (day) {
case "Sunday" -> 0;
case "Monday" -> 1;
...
default -> -1;
};
yieldを用いて、以下のようにも記述可能です。
int dayOfWeek = switch (day) {
case "Sunday":
yield 0;
case "Monday":
yield 1;
...
default:
yield -1;
};
複数のcaseラベル:複数のcaseを一つのブロックで処理することができるようになりました。
switch (day) {
case "Saturday", "Sunday" -> System.out.println("Weekend!");
...
}
条件式の利用:case内で条件式を使用して、より複雑な条件判定を行うこともできるようになりました。
まとめ
switch文は、複数の条件の中から一つを選び、効率的に処理を行うための強力なツールです。Javaのバージョンが進むにつれて、より柔軟性が増してきました。日々のプログラミングにおいて、この強化されたswitch文を最大限に活用しましょう。