JavaScriptで複数条件分岐をスッキリ記述!switch文の使いこなし
JavaScriptにおける複数条件分岐処理: Switch文
基本的な構文
switch (式) {
case 値1:
処理1;
break;
case 値2:
処理2;
break;
default:
処理3;
}
switch
文の後に評価対象となる式を記述します。case
ラベルには、比較対象となる値を記述します。- 処理内容は、
break
文で区切ります。 - どの
case
にも一致しない場合、default
ラベルの処理が実行されます。
複数の条件をまとめて処理
switch (曜日) {
case '月曜日':
case '火曜日':
case '水曜日':
case '木曜日':
case '金曜日':
// 平日の処理
break;
case '土曜日':
case '日曜日':
// 休日の処理
break;
}
複数のcase
ラベルを連続して記述することで、同じ処理を実行することができます。
値の範囲を指定
switch (点数) {
case 90:
case 95:
case 100:
// 満点の処理
break;
case 80:
case 85:
// 優秀な処理
break;
// 省略
}
case
ラベルに演算子を用いることで、値の範囲を指定できます。
便利な機能
break
文は省略可能です。省略すると、次のcase
ラベルの処理まで実行されます。case
ラベルにfallthrough
キーワードを記述することで、意図的に次のcase
ラベルの処理まで実行できます。- 文字列やオブジェクトなども比較対象として利用できます。
注意点
switch
文は、厳密な一致比較を行います。型変換は行われません。default
ラベルは省略可能ですが、存在しない場合、どのcase
にも一致しない場合は処理が実行されません。
まとめ
switch
文は、複数の条件分岐処理を簡潔に記述できる便利な機能です。コードの可読性向上、複雑化の防止に役立ちます。
const 曜日 = '月曜日';
switch (曜日) {
case '月曜日':
case '火曜日':
case '水曜日':
case '木曜日':
case '金曜日':
console.log('平日は頑張りましょう!');
break;
case '土曜日':
case '日曜日':
console.log('週末はゆっくり休んでください!');
break;
default:
console.log('無効な曜日です。');
}
点数による評価
const 点数 = 85;
switch (点数) {
case 90:
case 95:
case 100:
console.log('満点です!素晴らしい!');
break;
case 80:
case 85:
console.log('優秀です!よく頑張りました!');
break;
case 70:
case 75:
console.log('合格です!もう少し頑張りましょう!');
break;
default:
console.log('不合格です。次はもっと頑張りましょう!');
}
文字列による処理
const 色 = '青';
switch (色) {
case '赤':
console.log('情熱的な色ですね!');
break;
case '青':
console.log('冷静沈着な色ですね!');
break;
case '緑':
console.log('自然を感じさせる色ですね!');
break;
default:
console.log('無効な色です。');
}
オブジェクトによる処理
const 動物 = {
種類: '犬',
鳴き声: 'ワン'
};
switch (動物.種類) {
case '犬':
console.log('ワンワン!');
break;
case '猫':
console.log('ニャーニャー!');
break;
case '鳥':
console.log('チュンチュン!');
break;
default:
console.log('無効な動物です。');
}
複数条件分岐処理の他の方法
if文のネスト
if (条件1) {
処理1;
} else if (条件2) {
処理2;
} else if (条件3) {
処理3;
} else {
処理4;
}
最も基本的な方法ですが、条件分岐の数が増えるとコードが複雑化し、可読性が低下します。
テルナリー演算子
const 結果 = 条件 ? 処理1 : 処理2;
オブジェクトリテラル
const 処理 = {
条件1: () => {
// 処理1
},
条件2: () => {
// 処理2
},
条件3: () => {
// 処理3
},
};
処理[条件]();
条件と処理をオブジェクトリテラルで定義することで、コードの可読性を向上させることができます。
関数
function 処理1() {
// 処理1
}
function 処理2() {
// 処理2
}
function 処理3() {
// 処理3
}
const 処理 = 条件 ? 処理1 : 処理2;
処理();
処理を個別の関数に分割することで、コードの再利用性と可読性を向上させることができます。
まとめ
各方法のメリットとデメリット
方法 | メリット | デメリット |
---|---|---|
switch 文 | 簡潔 | 厳密な一致比較 |
if 文のネスト | 汎用性 | 複雑化しやすい |
テルナリー演算子 | 簡潔 | 条件分岐の増加に伴い複雑化 |
オブジェクトリテラル | 可読性 | 記述量が増加 |
関数 | 再利用性 | 記述量が増加 |
どの方法が最適かは、条件分岐の数や処理内容によって異なります。コードの可読性と保守性を考慮して、適切な方法を選択しましょう。
javascript switch-statement