If文とswitch文はどう使い分けます?

if文とswitch文はどう使い分けますか?

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 文