現在『スッキリわかる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;
}
以上です。