
if文とswitch文はどう使い分けますか?
プログラムを書く上で、条件分岐は欠かせない要素です。JavaScriptでは、条件分岐を行うために `if` 文と `switch` 文が用意されています。どちらも条件によって処理を分岐させることができますが、それぞれに特徴があり、使い分けることでコードの可読性や効率が向上します。
if文とswitch文の違い
基本的には、`if` 文は条件式が真 (true) か偽 (false) かで条件分岐を行い、 `switch` 文は変数の値によって条件分岐を行います。
| 項目 | if文 | switch文 | 
|---|---|---|
| 条件式 | 真偽値で評価される式 | 変数の値 | 
| 分岐条件 | 様々な条件式を記述可能 | 変数の値と一致するcaseのみ | 
| 処理の流れ | 上から順に条件を評価 | 一致するcaseにジャンプ | 
| 用途 | 複雑な条件分岐、二分岐 | 単純な値による分岐、多分岐 | 
使い分けのポイント
上記の違いを踏まえて、以下のような点で使い分けると良いでしょう。
* **二分岐の場合:** 条件が単純な真偽の場合には `if` 文を使う * **多分岐の場合:** 3つ以上の分岐がある場合や、変数の値によって処理を分岐させたい場合には `switch` 文を使う * **可読性:** 処理内容が複雑な場合は、`if` 文でネストを深くするよりも、`switch` 文で分岐を明確にした方がコードが読みやすくなる場合があるコード例
if文
<script>
  const score = 80;
  if (score >= 90) {
    console.log('秀');
  } else if (score >= 70) {
    console.log('優');
  } else if (score >= 60) {
    console.log('良');
  } else {
    console.log('可');
  }
</script>
switch文
<script>
  const signal = 'blue';
  switch (signal) {
    case 'red':
      console.log('止まれ');
      break;
    case 'yellow':
      console.log('注意');
      break;
    case 'blue':
      console.log('進め');
      break;
    default:
      console.log('信号が壊れています');
  }
</script>
参考文献
QA
Q1: `if` 文の中に `switch` 文を記述することはできますか?
A1: はい、可能です。`if` 文の処理部分に `switch` 文を記述することで、より複雑な条件分岐を実現することができます。
Q2: `switch` 文の `break;` は省略できますか?
A2: 省略できますが、省略すると意図しない動作になる可能性があります。`break;` を省略すると、次の `case` に処理が移ってしまうため、基本的には記述するようにしましょう。
Q3: どちらの文を使うべきか迷う場合はどうすれば良いですか?
A3: どちらを使っても問題ない場合も多いですが、可読性や処理速度を考慮して、より適切な方を選ぶようにしましょう。迷った場合は、それぞれの文の特徴を参考に、実際にコードを書いてみて比較してみるのも良いでしょう。
その他の参考記事:jquery if 文