JavaScript/switch
表示
switch
[編集]switch は、JavaScript のキーワードで、複数の条件に基づいて異なるコードブロックを実行するために使用される制御構文です。switch 文は、if...else if...else 文に似ていますが、複数の条件を比較する際により簡潔で読みやすくなります。
構文
[編集]switch (式) { case 値1: // 値1の場合の処理 break; case 値2: // 値2の場合の処理 break; default: // どれにも一致しない場合の処理 }
switch 文は指定した式を評価し、各 case ラベルで定義された値と一致する場合、そのコードブロックを実行します。もしどの case にも一致しなければ、default ブロックが実行されます。
使用例
[編集]基本的な使用法
[編集]let fruit = 'apple'; switch (fruit) { case 'apple': console.log('This is an apple'); break; case 'banana': console.log('This is a banana'); break; default: console.log('Unknown fruit'); } // 出力: This is an apple
この例では、fruit 変数が 'apple' と一致したため、case 'apple' が実行され、「This is an apple」がコンソールに出力されます。
複数の値を同じコードブロックで処理する
[編集]let fruit = 'banana'; switch (fruit) { case 'apple': case 'banana': console.log('This is either an apple or a banana'); break; default: console.log('Unknown fruit'); } // 出力: This is either an apple or a banana
switch 文では、複数の値を一つの case にまとめて処理することができます。上記の例では、fruit が 'apple' または 'banana' の場合に同じコードブロックが実行されます。
let number = 2; switch (number) { case 1: console.log('Number is 1'); break; case 2: console.log('Number is 2'); break; case 3: console.log('Number is 3'); break; default: console.log('Unknown number'); } // 出力: Number is 2
break キーワードは、switch 文の実行を終了し、switch 文の外に処理を移すために使います。break がないと、次の case に進んでしまう「フォールスルー」が発生します。
フォールスルーの例
[編集]let number = 2; switch (number) { case 1: console.log('Number is 1'); break; case 2: console.log('Number is 2'); case 3: console.log('Number is 3'); break; default: console.log('Unknown number'); } // 出力: // Number is 2 // Number is 3
case 2 には break がないため、case 3 まで処理が進んでしまい、両方のメッセージが出力されます。
型の比較
[編集]let number = '2'; switch (number) { case 2: console.log('Number is 2'); break; case '2': console.log('String is "2"'); break; default: console.log('Unknown value'); } // 出力: String is "2"
switch 文では、厳密な比較(型と値の両方を比較)を行います。上記の例では、number が文字列 '2' であるため、case '2' が実行されます。
let number = 4; switch (number) { case 1: console.log('Number is 1'); break; case 2: console.log('Number is 2'); break; default: console.log('Number is not 1 or 2'); } // 出力: Number is not 1 or 2
default は、どの case にも一致しない場合に実行されるコードブロックです。ここでは、number が 1 や 2 に一致しなかったため、default が実行されます。
注意点
[編集]switch文では、caseラベルで指定された値と式の評価結果が厳密に比較されます。つまり、型も一致しなければなりません。switch文は、非常に多くのcaseを持つ場合に特に便利ですが、コードの可読性を高めるためには適切にコメントを追加したり、defaultを使用して予期しない値に対処することが重要です。breakを忘れると、フォールスルーによって後続のcaseが実行される可能性があるため注意が必要です。