Language 初級

値を返すswitch式 — breakなし、フォールスルーなし。

✕ Java 8
String msg;
switch (day) {
    case MONDAY:
        msg = "Start";
        break;
    case FRIDAY:
        msg = "End";
        break;
    default:
        msg = "Mid";
}
✓ Java 14+
String msg = switch (day) {
    case MONDAY  -> "Start";
    case FRIDAY  -> "End";
    default      -> "Mid";
};
このコードに問題がありますか? お知らせください。

値を返す

switch結果を直接代入できます — 一時変数は不要です。

🚫

フォールスルーなし

アロー構文により、breakの書き忘れによる意図しないフォールスルーがなくなります。

網羅性チェック

コンパイラがすべてのケースをカバーしているか確認します。

旧来のアプローチ
switch文
モダンなアプローチ
switch式
JDKバージョン
14
難易度
初級
switch式
利用可能

JDK 14(2020年3月)以降、広く利用可能

switch式は値を直接返し、アロー構文でフォールスルーのバグを防ぎ、コンパイラが網羅性を検証します。これにより、エラーが起きやすい文形式を置き換えられます。

共有 𝕏 🦋 in