【Java】switch文の徹底ガイド

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文を最大限に活用しましょう。