2
0

More than 1 year has passed since last update.

【 Java switch文の利点と注意点 と補足】 

Posted at

現在『スッキリわかるJava 入門』でJavaを学習中です。
この投稿はそのアウトプットと備忘録になります。

■switch文

以下のようなif文(式A)があります。
式として問題はありませんが、同じ変数に対して繰り返し比較していて、
冗長でスッキリしていません。
このようなelse ifが重複するときswitch文(式B)に置き換えてスッキリさせることができます。

式A(冗長なif文)

public class App{
 public static void main(String[] args){
  System.out.println("あなたの運勢を占います");
  int fortune = new java.util.Random().nextInt(4) + 1;
  if (fortune == 1){
   System.out.println("大吉");
  } else if (fortune == 2){
   System.out.println("中吉");
  } else if (fortune == 3){
   System.out.println("吉");
  } else{
   System.out.prinln("凶");
 }
}
式B(スッキリして見やすいswitch文)

public class App{
 public static void main(String[] args){
  System.out.println("あなたの運勢を占います");
  int fortune = new java.util.Random().nextInt(4) + 1;
  switch (fortune) {
   case 1:
    System.out.println("大吉");
    break;
   case 2:
    System.out.println("中吉");
    break;
   case 3:
    Syste,.out.println("吉");
    break;
   default:
    System.out.println("凶");
  }
 }
}

■利点

以上のようにswitch文を使うと、スッキリしていて見やすいコードになります。

■注意点

①switchの後に書く条件は(fortune == 1)などではなく(fortune)
②caseの後には「;」ではなく「:」
③case以降の処理の末尾にはbreak文を記述(書き忘れ注意)

■補足

①elseの代わりに「default:」を書くが、不要なら省略も可能
②break文を敢えて書かずに「fortuneの値が1か2なら...なら」という分岐を以下のように省略することが可能

switch (fortune){
 case1:
 case2:
  System.out.println("いいね");
  break;
}

以上です。

2
0
0

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
2
0