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?

More than 3 years have passed since last update.

【java】switch文について基本的なことを整理してみた

Posted at

【目的】

「switch文の意味をきちんと理解すること。」

 🔷当初switch文は、「if文だと冗長になってしまう場合に、もっと見やすく書く手段」と理解。
 🔷しかしこの理解だけで実際にコードを書くと、構文中の「break」でモヤみが発生。
  ?breakなくてもコンパイル、実行できる
  ?でも自分の思ったとおりの処理にならない
  ?とりあえず、書いとけばいい…わけではなさそう

【switch文とは】

 「条件に一致するcaseラベルまで処理をジャンプさせることができる。」

 🔷switch文の正体がわかったので、構文内の「break」使用についてもスッキリ。
 🔷正直この一文だけで、モヤみ解決(´-`)

【switch文に書き換えることができる条件】

📌 全ての条件式が、右辺と左辺が一致するかを比較する式になっていること。
  例えば「変数 == 値」「変数 == 変数」のような式になっていればOK( ^ω^ )
  「>」「<」「!=」が使われている式はNG(`ω´)

📌 比較する値が整数(byte、short、intのいずれか)であること。
📌 文字列(String型)または文字(char型)であること。
  小数や真偽値ではないこと。

【switch構文】

・switch(条件値){  //switchの直後に書くのは、条件式ではなく、変数名
   case 値1:  //caseの横には値を書く。後ろに:をつける(よく;と間違える)
      処理1  
      break;  //case以降の処理の末尾にはbreakを付ける(付けない方法は【その他】参照)
   case 値2: 
      処理2
      break;
    .
    .
    .
    default:  //上記case以外の処理が不要であれば省略可能。
       処理x
}

【switch構文を使用した例文】

public class Main{
  public static void main(String[] args){
    System.out.println("");
    int n = new java.util.Random().nextInt(5) + 1;  //1〜5までランダムに整数を選ぶ。
    switch(n){
      case 1:
        System.out.println("");
      break;

      case 2:
       .
       .
       .
  }
 }
}

【その他】

「あえてbreak文を書かない」場合

「nが1か2なら...、3なら...」というふうに、複数の場合について同一の処理を行いたい時に、あえて書かない方法もある。

public class Main{
  public static void main(String[] args){
    System.out.println("");
    int n = new java.util.Random().nextInt(5) + 1;  //1〜5まで、ランダムに整数を選ぶ。
    switch(n){
      case 1:
      case 2:    // break文を書かない。
        System.out.println("");
    break;
 

      case 3:
        System.out.println("");    
        break;
       .
       .
       .
  }
 }
}
0
0
2

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?