JavaScript switch文のサンプル

目次

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文を使用することは可能です。

関連の記事

JavaScript if文 条件分岐を行うサンプル
JavaScript constとletとvarの違い

△上に戻る