【Java】switch文について(switch文のcase値、break、defaultについても解説)

【Java】switch文について(switch文のcase値、break、defaultについても解説)

switch文を利用する場合の書式は次のようになります。

📋switch文 書式
switch ( 条件式 ) {
   case 値 : 処理
     break;
   case 値 : 処理
     break;
   default 値 : 処理
     break;
}

switch文は以下の特徴があります。

  • 条件式が戻す値と一致するcase式を実行
  • defaultはどのcaseにも当てはまらなかったときに実行する処理
  • 処理の値には必ずbreakキーワード

それではどのような形で使用するのか以下のようにまとめました。

番号 switch文のキーワードの意味
switch ( 条件式 )  { switch 文を使用する際にはじめに記述
case 値 : 処理 条件式が一致した際に処理が実行される
default 値 : 処理

どのcaseにも当てはまらなかったときに処理が実行される

break;

switch文の処理を終了させるために必要なキーワード、見つからない場合、見つかるまでcase内の文の処理を実行し続ける。

①switch文:case有り、default無し、条件に合致する場合

case式の値に該当する場合はその処理が実行されます。

次のサンプルプログラムを参照ください。

サンプルコード:「SwitchTest.java」

public class SwitchTest {

  public static void main(String[] args) {
    int num = 10;
    switch (num) {
    case 11 :
      System.out.println(11);
       break;
    case 10 :
      System.out.println(10);
       break;
      }
    }
}

実行結果

10

case値が10の時に条件として一致するため、出力結果として10が出力されています。

②switch文:case有り、default無し、条件に合致しない場合

条件式での結果がcase値に一致しない場合は処理は行われません。

次のサンプルプログラムから、何も処理されないことが読み取れます。

サンプルコード:「SwitchTest.java」

public class SwitchTest {

  public static void mがin(String[] args) {
    int num = 12;
    switch (num) {
    case 11 :
      System.out.println(11);
       break;
    case 10 :
      System.out.println(10);
       break;
      }
    }
}

実行結果

 

今回は該当するケースが無いため、処理は実行されないことが分かります。

③switch文:case有り、default有り、条件に合致する場合

case式の値に該当する場合はその処理が実行されます。

if文でいう「else」がswitch文でいう「default」のイメージで覚えやすいです。

サンプルコード:「SwitchTest.java」

public class SwitchTest {

  public static void main(String[] args) {
    int num = 10;
    switch (num) {
      case 11 :
        System.out.println(11);
        break;
      case 10 :
        System.out.println(10);
        break;
      default :
        System.out.println(99);
        break;
     }
   }
}

実行結果

10

case式が一致する場合は、default文の処理が実行されません。

default文は必ず実行されるという意味ではないことが良い取れます。

 

④switch文:case有り、default有り、条件に合致しない場合

case式の値に該当しない場合はdefaultの処理が実行されます。

サンプルコード:「SwitchTest.java」

public class SwitchTest {

  public static void main(String[] args) {
    int num = 12;
    switch (num) {
      case 11 :
        System.out.println(11);
        break;
      case 10 :
        System.out.println(10);
        break;
      default :
        System.out.println(99);
        break;
     }
   }
}

実行結果

99

case式の値に該当しない場合はdefaultの処理が実行されることが確認できました。

⑤switch文:breakがない場合、見つからない場合、見つかるまでcase内の文の処理を実行し続けます。

サンプルコード:「SwitchTest.java」

public class SwitchTest {

  public static void main(String[] args) {
    int num = 11;
    switch (num) {
      case 11 :
        System.out.println(11);
      case 10 :
        System.out.println(10);
        break;
      default :
        System.out.println(99);
        break;
     }
   }
}

実行結果

11
10

break文がない場合、見つかるまでcase内の文の処理を実行し続けるため、次の処理の10も出力されることが分かりました。

⑥switch文:case値が一致する場合はコンパイルエラー

case値が一致する場合はコンパイルエラーとなりますので、記述することができません。

public class SwitchTest {

  public static void main(String[] args) {
    int num = 11;
    switch (num) {
      case 10 :
        System.out.println(11);
      case 10 :
        System.out.println(10);
        break;
      default :
        System.out.println(99);
        break;
     }
   }
}

実行結果

重複 case

上記のエラーメッセージが出力されるため、case値が一致する場合は使用できません。

 

 

⑦switch文:breakの代わりにreturnを使用しても問題なし

breakは処理を終了するために使用されていますが、同じようにreturn文を使用して、switch文を抜けることができます。次のサンプルプログラムを参照ください。

public class SwitchTest {

  public static void main(String[] args) {
    int num = 10;
    switch (num) {
      case 11 :
        System.out.println(11);
        return;
      case 10 :
        System.out.println(10);
        return;
      default :
        System.out.println(99);
        return;
        }
    }
}

実行結果

10

上記のとおり問題なく動作することを確認できます。

⑧switch文:条件式が戻せる値の型の制限

条件式が戻せる型には宣言があります。

次のように覚えましょう。

  • int型以下の整数型とそのラッパークラス
  • 文字と文字列
  • 列挙型

管理人
Javaの記事の一覧はJava にまとめてあります

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

PAGE TOP