switch文

switch文もif文と同じ条件分岐構文です。
switch文の記述の仕方は以下のようになります

switch文の記述の仕方


   switch(値) 

          case 値1:
              値の評価==値1のときに処理される 
          break;

          case 値2:
              値の評価==値2のときに処理される
          break;

          case 値3:
              値の評価==値3のときに処理される
          break;

          case 値4:
              値の評価==値4のときに処理される
          break;

          default:
              値の評価がどれも一致しなかった時の処理
          break;

このようになります。
switch文 で指定した値と case の値が一致すればそのcaseの中の処理をします。
また、そのあとに キーワードbreakがあります。

breakはプログラムの終了を意味します。

つまり、case の最後にbreakがあります。したがって、caseが終了した時点でswitch文は終了します。
break文がなければ、終了することがなく次のcase文の処理をします。
defaultは別に記述しなくてもプログラムには影響しません。

switch文のswitch(値)に記述できる値の型は
  byte ,shot, char int

でなければいけません。
では、switch文を使ったプログラムを作成しその違いについて見ていきます。

サンプルプログラム(Sample28.java)break文を記述しなかった場合

class  Sample28{
    public static void main(String args[]){

   int x = 2;

      switch(x){
         case 1:
             System.out.println("xの値は1です");
         case 2:
             System.out.println("xの値は2です");
         case 3:
             System.out.println("xの値は3です");
         default:
             System.out.println("それ以外の値です");
            }
     }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

100GB、マルチドメインやMySQLが無制限。CGI・PHP高速化機能搭載【X2】
フレッツ光加入で地デジ対応32型液晶TVプレゼント!


コンパイル・実行すると以下のようになります。

コンパイル・実行したらこのような結果になりました。
これは、まずint xの値2がswitch文の( )の中に指定されています。
したがって、 case 2: の中の処理が行われました。
しかし、break文がないためにcase 3: default:の中の処理までが行われています。

サンプルプログラム(Sample28_1.java)break文を記述した場合1

class  Sample28_1{
    public static void main(String args[]){
     int x = 2;
      switch(x){
         case 1:
             System.out.println("xの値は1です");
             break;
         case 2:
             System.out.println("xの値は2です");
            break;
         case 3:
             System.out.println("xの値は3です");
             break;
         default:
             System.out.println("それ以外の値です");
             break;
            }
      }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

大容量42.195GB、メールアドレス数無制限、共有SSL対応のレンタルサーバー『ヘテムル』
テンプレート驚きの7000種類!あなた好みのブログをつくるなら【JUGEM


コンパイル・実行します

今度はcase 2:の中の処理だけが実行されています。
break文を記述したことによりcase 2の処理が終わったところで、プログラムが 終了しています。

サンプルプログラム(Sample28_2.java)break文を記述した場合2

class  Sample28_2{
    public static void main(String args[]){
       int x = 2;
        switch(x){
         case 1:
             System.out.println("xの値は1です");
            break;
         case 2:
             System.out.println("xの値は2です");
        
         case 3:
             System.out.println("xの値は3です");
             break;
         default:
             System.out.println("それ以外の値です");
            break;
            }

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行します

今度はcase 2:だけbreak文を記述しませんでした。
結果はcase 2にbreak文が記述されていないので、もちろんcase 3も実行されます。
しかしcase 3にはbreak文が記述されているので、ここでプログラムは終了します。
したがって、case 2 と case 3 だけが実行されたわけです。

サンプルプログラム(Sample28_3.java)

byte,shot,int,char以外の型を使用した場合

class  Sample28_3{
    public static void main(String args[]){
  long x = 2;
     switch(x){
         case 1:
             System.out.println("xの値は1です");
             break;
         case 2:
             System.out.println("xの値は2です");
            break;
         case 3:
             System.out.println("xの値は3です");
            break;
         default:
             System.out.println("それ以外の値です");
            break;
            }
} }
プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル実行します。

このようにエラーになります。

ページのトップへ戻る