Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 43:構文:条件分岐の挙動

次のswitch文を実行したときのコンソールへの出力として正しいものはどれですか?

```javascript
const color = 'red';
switch (color) {
case 'red':
console.log('赤');
case 'blue':
console.log('青');
break;
case 'green':
console.log('緑');
}
```

  1. 「赤」という文字列のみがコンソールに出力される
  2. 「赤」と「青」という文字列が連続して出力される
  3. 「青」という文字列のみがコンソールに出力される
  4. 「赤」「青」「緑」のすべての文字列が出力される
  5. 文法エラーが発生するため、何も出力は行われない
正解と解説を見る
正解:「赤」と「青」という文字列が連続して出力される

case 'red'の処理が実行された後、break文がないため次のcaseの処理にそのまま進行(フォールスルー)し、「赤」と「青」という文字列が連続して出力されます。

【正解の理由】
switch文では、マッチしたcaseの処理を実行した後、break文に到達するかswitch文が終わるまで、後続のcaseの処理も続けて実行します。このコードではcase 'red'にbreakがないため、case 'blue'の処理も実行されます。

【不正解の理由】
• 「『赤』という文字列のみがコンソールに出力される」という説明は誤り。break文がないため、次の処理も実行される
• 「『青』という文字列のみがコンソールに出力される」という説明は誤り。マッチした'red'の処理も実行される
• 「『赤』『青』『緑』のすべての文字列が出力される」という説明は誤り。case 'blue'の最後にbreak文があるため、そこで処理は終了し'green'は実行されない
• 「文法エラーが発生するため、何も出力は行われない」という説明は誤り。break文を省略すること自体は文法エラーではない

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)