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' の場合に同じコードブロックが実行されます。

break の使用

編集
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' が実行されます。

default の使用

編集
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 が実行される可能性があるため注意が必要です。

関連項目

編集

参考

編集