
if文に続いて、もう1つの条件分岐「switch文」を学びました。switch文は、多数の値と比較して処理を分岐したいときに便利です。
switch文とは
switch文は、1つの値を複数の値と比較して、一致する場合の処理を実行する構文です。
構文:
switch (条件の値) {
case 値1:
条件の値が値1と等しい時の処理
break;
case 値2:
条件の値が値2と等しい時の処理
break;
default:
どの値とも一致しない時の処理
}
switch文の基本例
const day = '月曜';
switch (day) {
case '月曜':
console.log('週の始まり');
break;
case '金曜':
console.log('週末まであと少し');
break;
case '土曜':
case '日曜':
console.log('休日');
break;
default:
console.log('平日');
}
// 週の始まり
breakの重要性
break は、switch文を終了する命令です。
break がないと、一致した処理の後も、そのまま次の処理が実行されてしまいます。
breakがない場合の問題
const score = 'B';
switch (score) {
case 'A':
console.log('優秀');
// breakがない
case 'B':
console.log('良好');
// breakがない
case 'C':
console.log('普通');
break;
}
// 良好
// 普通(breakがないので次も実行される)
case 'B' に一致した後、break がないため case 'C' の処理も実行されてしまいます。
breakがある場合(正しい書き方)
const score = 'B';
switch (score) {
case 'A':
console.log('優秀');
break;
case 'B':
console.log('良好');
break;
case 'C':
console.log('普通');
break;
}
// 良好(これだけ実行される)
重要: 各 case の最後には必ず break; を書くことが基本です。
複数の値を1つの処理にまとめる
break を意図的に省略することで、複数の値に対して同じ処理を実行できます。
const day = '土曜';
switch (day) {
case '土曜':
case '日曜':
console.log('休日');
break;
default:
console.log('平日');
}
// 休日
case '土曜': には break がないため、そのまま case '日曜': の処理に進みます。結果として、土曜でも日曜でも「休日」と表示されます。
default:どのcaseにも一致しない場合
default は、どの case とも一致しないときに実行される処理です。
const fruit = 'ぶどう';
switch (fruit) {
case 'りんご':
console.log('赤い果物');
break;
case 'バナナ':
console.log('黄色い果物');
break;
default:
console.log('その他の果物');
}
// その他の果物
default は省略可能ですが、予期しない値に対する処理を書いておくと安全です。
if文とswitch文の使い分け
if文が適している場合
- 範囲の判定(以上・以下など)
- 複雑な条件(
&&や||を使う)
const age = 25;
// if文が適している
if (age >= 18 && age < 65) {
console.log('成人');
}
switch文が適している場合
- 特定の値との一致判定が多い
- 分岐が多い(3つ以上)
const color = '赤';
// switch文が適している
switch (color) {
case '赤':
console.log('情熱');
break;
case '青':
console.log('冷静');
break;
case '黄':
console.log('明るい');
break;
default:
console.log('その他');
}
Pythonとの比較
Pythonには switch 文がありません(Python 3.10以降は match 文がありますが、使い方が異なります)。
# Python(switch文はない。if-elifで書く)
day = '月曜'
if day == '月曜':
print('週の始まり')
elif day == '金曜':
print('週末まであと少し')
else:
print('平日')
// JavaScript(switch文がある)
const day = '月曜';
switch (day) {
case '月曜':
console.log('週の始まり');
break;
case '金曜':
console.log('週末まであと少し');
break;
default:
console.log('平日');
}
JavaScriptでは、多数の値を比較する場合は switch 文を使うとコードがスッキリします。
気づき:PythonとJavaScriptの文法の違い
今回の学習を通じて、PythonとJavaScriptの文法の違いを改めて実感しました。
主な違い
| 項目 | Python | JavaScript |
|---|---|---|
| 変数の宣言 | 不要 | let / const が必要 |
| セミコロン | 不要 | 必要(1つの処理ごと) |
| ブロックの表現 | インデントのみ | {} が必要 |
| switch文 | なし(if-elif) | あり |
特に、JavaScriptでは1つの処理ごとにセミコロンが必要という点が、Pythonとの大きな違いです。
今日の学びのポイント
- switch文: 1つの値を複数の値と比較
case 値:: 一致する値を指定break;: switch文を終了(必須)breakがないと次の処理も実行される(注意)default:: どのcaseにも一致しない場合- 使い分け: 特定値との一致判定が多い → switch、範囲判定 → if
switch文は、特定の値と比較する分岐が多いときに威力を発揮します。if文とswitch文を適切に使い分けられるようになりましょう。


コメント