break文を意図的に記述しない

広告

switch文において式を評価した後に一致するラベルへ移動した後は、switch文の最後に達するか又はbreak文を実行するまでは順に処理が実行されていきます。例えば次の例を見てください。

int num = 1;

switch (num){
  case 1:
    System.out.println("不満がある");
  case 2:
    System.out.println("どちらとも言えない");
    break;
  case 3:
    System.out.println("満足している");
}

上記を実行すると次のように画面に表示されます。

不満がある
どちらとも言えない

この結果は恐らくプログラムの作者が意図していないものだと思います。ただbreak文を記述するしないは自由であるため意図的にbreak文を記述しないことも可能です。例えば次の例を見てください。

int num = 1;

switch (num){
  case 1:
    System.out.print("スープ、デザート付き");
  case 2:
    System.out.println("麻婆豆腐");
}

この場合、数値が1なら「スープ、デザート付き麻婆豆腐」と表示され、数値が2なら「麻婆豆腐」と表示されます。このようにbreak文を記述するしないは任意であるということと、場合によっては意図的に記述しないこともできることを覚えておいて下さい。

サンプル

では簡単な例で試しておきます。

JSample6_1.java

class JSample6_1{
  public static void main(String args[]){
    int num = 1;

    switch (num){
      case 1:
        System.out.print("スープ、デザート付き");
      case 2:
        System.out.println("麻婆豆腐");
    }
  }
}

コンパイル後に実行すると次のように表示されます。

p6-1

( Written by Tatsuo Ikura )