【目的】
「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;
.
.
.
}
}
}