目次
switch文とは
switch文の構造とサンプル
複数の条件で処理を分岐する時に使用します。
if文で複数の条件を書くよりも見やすくなります。
switch(式){ case 値 : 処理 break; case 値 : 処理 break; default: 処理 } |
コード
<script>
const a = "2";
switch (a) {
case "1":
console.log("test1");
break;
case "2":
console.log("test2"); // test2が出力される
break;
default:
console.log("test3");
}
</script>
4行目は、aの値が2なので8行目のcaseに進みます。
8行目は、aの値が2なので9行目の処理を行います。
10行目は、breakがあるのでswitch文の処理は終了し13行目に進みます。
point
・式の結果とcaseの値が一致すれば、配下の処理が実行されます。
・caseは複数記述できます。
・比較は、===演算子で行うので値と型が一致する必要があります。
→数値型と文字列型の比較では一致しません。
・breakでswitch文を抜けます。breakがないと下の判定(case/default)に行ってしまいます。
・defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
breakがない場合(フォールスルー)
<script>
const a = "1";
switch (a) {
case "1":
console.log("test1"); // test1が出力される
case "2":
console.log("test2"); // test2が出力される
break;
default:
console.log("test3");
}
</script>
7行目は、breakがありません。
5行目のcase "1"の処理の後、8行目のcase"2"の処理も実行されます。
point
フォールスルー(fall through/落ちる)と呼ばれます。
breakを書き忘れたのかわかりづらいので使用しないほうが良いです。
switch文の中でif文を使用する
<script>
const a = 3;
switch (a) {
case 3:
if (a % 2 == 0) {
console.log("even");
} else {
console.log("odd"); // oddが出力される
}
break;
default:
console.log("other");
}
</script>
6行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。
point
switch文の中にif文を使用することは可能です。
関連の記事