Java 速習チュートリアル

Java のswitch文

1. switch ステートメント

多くの if..else 文を書き連ねる代わりに、switch 文を使用することができます。

これはレストランでの注文に似ています。「1番を選べばピザ、2番ならバーガー、3番ならパスタ、それ以外なら何もなし」といった具合に、選択肢に応じて処理を分岐させます。

switch 文は、複数のコードブロックの中から実行すべき1つを選択します。

1.1 構文 (Syntax)

switch(式) {
  case x:
    // コードブロック
    break;
  case y:
    // コードブロック
    break;
  default:
    // コードブロック
}

switch文の仕組みは以下の通りです:

  • switch の「式(expression)」が一度だけ評価されます。
  • その結果の値が、各 case の値と比較されます。
  • 一致(マッチ)するものがあれば、その case に関連付けられたコードブロックが実行されます。
  • break キーワードに到達すると、switchブロックから脱出します。
  • 一致するものが一つもない場合は、default ブロックのコードが実行されます。

以下の例では、曜日の番号を使用して曜日の名前を算出しています。

1.2 曜日判定のコード例

int day = 4;
switch (day) {
  case 1:
    System.out.println("月曜日");
    break;
  case 2:
    System.out.println("火曜日");
    break;
  case 3:
    System.out.println("水曜日");
    break;
  case 4:
    System.out.println("木曜日");
    break;
  case 5:
    System.out.println("金曜日");
    break;
  case 6:
    System.out.println("土曜日");
    break;
  case 7:
    System.out.println("日曜日");
    break;
}
// 出力: "木曜日" (dayが4のため)

2. break キーワード

Javaが break キーワードに到達すると、その switch ブロックから完全に抜け出します。

これにより、ブロック内のそれ以降のコード実行や case のテスト(比較)が停止されます。一致が見つかり、目的の処理が完了したのであれば、そこで終了(休憩=break)の時間です。それ以上テストを続ける必要はありません。

break を適切に使用することで、switch ブロック内の残りのコード実行を「無視」できるため、実行時間の節約にもつながります。

3. default キーワード

default キーワードは、どの case にも一致しなかった場合に実行されるコードを指定します。

3.1 default を使用したコード例

int day = 4;
switch (day) {
  case 6:
    System.out.println("今日は土曜日です");
    break;
  case 7:
    System.out.println("今日は日曜日です");
    break;
  default:
    System.out.println("週末を楽しみにしています");
}
// 出力: "週末を楽しみにしています"

       注意:default ステートメントを switch ブロックの最後に記述する場合、break は必要ありません。