JavaScriptにおける「switch」文は、複数の条件を効率的に処理するために使用される制御構造です。特定の値に基づいて異なるコードブロックを実行したい場合に非常に便利です。この記事では、JavaScriptの「switch」文について、基本的な使い方から、複雑なケースまでを詳しく説明します。
1. 基本的な構文
「switch」文は、与えられた式(または値)と一致するケースに基づいて、異なるコードブロックを実行するために使用されます。基本的な構文は以下の通りです。

javascriptswitch (式) {
case 値1:
// 値1が式と一致した場合に実行されるコード
break;
case 値2:
// 値2が式と一致した場合に実行されるコード
break;
default:
// どのケースにも一致しなかった場合に実行されるコード
}
-
式
:評価される式で、通常は変数や定数、関数の戻り値などです。 -
case 値
:式の評価結果と比較される定数です。case
節は複数記述することができます。 -
break
:条件が一致した場合、break
によって「switch」文を終了させます。break
がないと、次のcase
に処理が進んでしまいます(後述)。 -
default
:すべてのcase
に一致しない場合に実行されるコードブロックです。省略することも可能ですが、通常は何も一致しない場合の処理を記述します。
2. 例:基本的な使用法
以下は、「switch」文を使用した簡単な例です。
javascriptlet day = 3;
switch (day) {
case 1:
console.log("月曜日");
break;
case 2:
console.log("火曜日");
break;
case 3:
console.log("水曜日");
break;
case 4:
console.log("木曜日");
break;
case 5:
console.log("金曜日");
break;
default:
console.log("週末");
}
このコードでは、day
の値に応じて、曜日を出力します。day
が3
であれば「水曜日」が表示されます。break
がない場合、次のcase
が実行されるので、break
の使用が重要です。
3. switch
文の挙動:break
がない場合
switch
文において、break
が省略されると、条件が一致した場合でもその後のすべてのcase
が順番に実行されます。これを「フォールスルー」と呼びます。
javascriptlet number = 2;
switch (number) {
case 1:
console.log("1");
case 2:
console.log("2");
case 3:
console.log("3");
}
このコードを実行すると、2
が一致するため「2」が表示され、その後にcase 3
も一致するため「3」も表示されます。もし「1」に一致した場合、「1」「2」「3」がすべて表示されることになります。したがって、フォールスルーを防ぐために、通常はbreak
を使うことが推奨されます。
4. switch
文の式と型
switch
文は、式の評価結果とcase
の値を比較します。この比較は、厳密な一致(===
)で行われます。したがって、型が異なる場合は一致しません。
javascriptlet value = 1;
switch (value) {
case "1":
console.log("文字列の1");
break;
case 1:
console.log("数値の1");
break;
default:
console.log("一致なし");
}
このコードでは、value
は数値の1
ですが、case "1"
は文字列の"1"
なので一致せず、「数値の1」が表示されます。
5. 複数のcase
を一緒に扱う
同じ処理を複数のcase
で実行したい場合は、複数のcase
をまとめることができます。
javascriptlet fruit = "apple";
switch (fruit) {
case "apple":
case "banana":
case "orange":
console.log("フルーツのいずれか");
break;
default:
console.log("フルーツではない");
}
この例では、「apple」「banana」「orange」のどれかが一致した場合に「フルーツのいずれか」と表示されます。case
の後に処理を記述し、その後のcase
を空にすることで、複数のケースに対して同じ処理を行うことができます。
6. switch
文の代替
switch
文が便利な場合も多いですが、if
文を使うことでも同様の処理ができます。条件が非常に複雑な場合や、評価したい式が複数の場合には、switch
よりもif
文の方が適切な場合もあります。
javascriptlet value = 3;
if (value === 1) {
console.log("1");
} else if (value === 2) {
console.log("2");
} else if (value === 3) {
console.log("3");
} else {
console.log("不明");
}
7. switch
文の利点と欠点
利点:
-
複数の条件を簡潔に記述できるため、
if
文よりも視覚的にわかりやすくなります。 -
条件が多数ある場合に、
switch
文の方が効率的です。
欠点:
-
条件の評価が厳密一致で行われるため、柔軟な条件の評価が求められる場合には
if
文が適しています。 -
case
節が多くなると、コードが長くなりがちです。
8. まとめ
JavaScriptの「switch」文は、複数の条件を効率的に処理するための強力なツールです。式の評価結果と一致するケースに基づいて異なる処理を行うことができ、break
を使うことで処理の流れを制御します。switch
文の使用方法をしっかり理解することで、より効果的にコードを書くことができるようになります。