プログラミング

JavaScriptのswitch文の使い方

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

1. 基本的な構文

「switch」文は、与えられた式(または値)と一致するケースに基づいて、異なるコードブロックを実行するために使用されます。基本的な構文は以下の通りです。

javascript
switch (式) { case1: // 値1が式と一致した場合に実行されるコード break; case2: // 値2が式と一致した場合に実行されるコード break; default: // どのケースにも一致しなかった場合に実行されるコード }
  • :評価される式で、通常は変数や定数、関数の戻り値などです。

  • case 値:式の評価結果と比較される定数です。case節は複数記述することができます。

  • break:条件が一致した場合、breakによって「switch」文を終了させます。breakがないと、次のcaseに処理が進んでしまいます(後述)。

  • default:すべてのcaseに一致しない場合に実行されるコードブロックです。省略することも可能ですが、通常は何も一致しない場合の処理を記述します。

2. 例:基本的な使用法

以下は、「switch」文を使用した簡単な例です。

javascript
let 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の値に応じて、曜日を出力します。day3であれば「水曜日」が表示されます。breakがない場合、次のcaseが実行されるので、breakの使用が重要です。

3. switch文の挙動:breakがない場合

switch文において、breakが省略されると、条件が一致した場合でもその後のすべてのcaseが順番に実行されます。これを「フォールスルー」と呼びます。

javascript
let 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の値を比較します。この比較は、厳密な一致===)で行われます。したがって、型が異なる場合は一致しません。

javascript
let 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をまとめることができます。

javascript
let 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文の方が適切な場合もあります。

javascript
let 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文の使用方法をしっかり理解することで、より効果的にコードを書くことができるようになります。

Back to top button