0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java:強化されたswitch 文

Posted at

強化された Java の switch 文(Java 14以降)

Java 14以降、switch文は 表現力・可読性・安全性が大幅に向上しました。

従来のswitch文の課題

breakを忘れるとフォールスルー(次のcaseに処理が進む)

switchは「文(Statement)」であり、値を返せない

複数のcaseに共通処理を書くと冗長になる

例(従来):
switch (day) {
    case "MON":
    case "TUE":
        System.out.println("Weekday");
        break;
    case "SAT":
    case "SUN":
        System.out.println("Weekend");
        break;
}

強化されたswitch文の特徴

  1. switch式(Expression)
    switchが式として使える(値を返せる)

-> を使ってシンプルに記述可能

String result = switch (day) {
    case "MON", "TUE", "WED", "THU", "FRI" -> "Weekday";
    case "SAT", "SUN" -> "Weekend";
    default -> "Unknown";
};

または yield を使ってブロック形式もOK:

int dayOfWeek = switch (day) {
    case "Sunday" -> 0;
    case "Monday" -> 1;
    default -> {
        System.out.println("Unknown day");
        yield -1;
    }
};
  1. 複数のcaseをカンマでまとめられる
case "SAT", "SUN" -> "Weekend";

→ 複数の条件を1行でまとめて書ける!

  1. パターンマッチング(Java 17~)
    型判定や条件分岐もcaseで直接書ける
switch (obj) {
    case String s when s.length() > 5 -> System.out.println("長い文字列");
    case Integer i -> System.out.println("整数: " + i);
    default -> System.out.println("その他");
}
  1. その他の改良点
    Enum型・Sealedクラスへの対応強化

nullやdefaultの柔軟な扱い

網羅性チェックの導入(抜け漏れを防止)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?