if文とswitch文の違い
JavaScriptで条件分岐を行う際によく使われる構文として、「if文」と「switch文」があります。どちらも条件によって処理を分岐させるという点では同じですが、それぞれ特徴や用途が異なります。この記事では、if文とswitch文の違いを分かりやすく解説し、状況に応じた使い分けについて考察します。
if文とswitch文の基本
if文
if文は、指定した条件式が真 (true) の場合に、特定の処理を実行します。条件式が偽 (false) の場合には、処理は実行されません。また、else if や else を使うことで、複数の条件分岐を設定することも可能です。
<script>
const score = 85;
if (score >= 90) {
console.log("秀");
} else if (score >= 80) {
console.log("優");
} else if (score >= 70) {
console.log("良");
} else if (score >= 60) {
console.log("可");
} else {
console.log("不可");
}
</script>
switch文
switch文は、変数や式の値に基づいて、複数のケースの中から一致するものを探し、そのケースに対応する処理を実行します。各ケースには、caseキーワードと値を指定します。どのケースにも一致しない場合は、defaultキーワードで指定した処理が実行されます。
<script>
const day = new Date().getDay();
let dayOfWeek;
switch (day) {
case 0:
dayOfWeek = "日曜日";
break;
case 1:
dayOfWeek = "月曜日";
break;
case 2:
dayOfWeek = "火曜日";
break;
case 3:
dayOfWeek = "水曜日";
break;
case 4:
dayOfWeek = "木曜日";
break;
case 5:
dayOfWeek = "金曜日";
break;
case 6:
dayOfWeek = "土曜日";
break;
default:
dayOfWeek = "無効な日付";
}
console.log(`今日は${dayOfWeek}です。`);
</script>
if文とswitch文の使い分け
if文とswitch文はどちらも条件分岐を行うための構文ですが、それぞれ以下のような特徴があります。
特徴 | if文 | switch文 |
---|---|---|
条件指定 | 真偽値 (true/false) で評価される条件式 | 変数や式の値との一致 |
処理の流れ | 上から順に条件を評価し、最初に真となった条件に対応する処理を実行 | 値と一致するcaseにジャンプし、break文まで処理を実行 |
適したケース | 複雑な条件式や、条件が2〜3個程度の分岐 | 単一の値に対して複数の分岐があり、処理内容が明確な場合 |
上記の特徴を踏まえ、以下のような基準で使い分けると良いでしょう。
- 条件分岐が2つだけで、単純な比較を行う場合: if文の方が簡潔に記述できます。
- 条件分岐が3つ以上になる場合、または同じ変数に対して複数の値で分岐する場合: switch文の方がコードが見やすく、処理の流れも分かりやすくなります。
- 複雑な条件式を使う場合や、範囲指定などを行う場合: if文の方が柔軟に対応できます。
まとめ
if文とswitch文はどちらも条件分岐を行う上で重要な構文です。それぞれの特性を理解し、状況に応じて使い分けることで、より可読性が高く効率的なコードを書くことができます。
参考文献
* if...else - JavaScript | MDN * switch - JavaScript | MDN
QA
Q1: if文の中でswitch文を使うことはできますか?
A1: はい、可能です。if文の処理部分にswitch文を記述することができます。状況に応じて、if文とswitch文を組み合わせることで、より複雑な条件分岐を実現できます。
Q2: switch文でbreak文を省略するとどうなりますか?
A2: break文を省略すると、一致したcaseの処理を実行した後も、次のcaseの処理が実行されてしまいます。これを「フォールスルー」と呼びます。意図的にフォールスルーを利用する場合以外は、必ずbreak文を記述するようにしましょう。
Q3: if文とswitch文のどちらを使うべきか迷う場合はどうすれば良いですか?
A3: どちらを使っても問題ない場合は、コードの可読性を重視して判断しましょう。switch文はif文に比べて処理の流れが直感的で分かりやすい場合が多いですが、条件式が複雑になると逆に分かりにくくなることもあります。状況に応じて、よりシンプルで見やすいコードを選択することが大切です。
その他の参考記事:JavaScriptのswitch文