JavaScript入門 練習問題 48:構文:三項演算子(条件演算子)
次のコードを実行したときのコンソールへの出力として正しいものはどれですか?
```javascript
const age = 20;
const status = age >= 18 ? "成人" : "未成年";
console.log(status);
```
- コンソールに "成人" という文字列が出力される
- コンソールに "未成年" という文字列が出力される
- コンソールに true という真偽値が出力される
- コンソールに false という真偽値が出力される
- 構文エラーとなりプログラムが停止する
正解と解説を見る
正解:コンソールに "成人" という文字列が出力される
変数 `age` は20であり、`age >= 18` の条件を満たすため、三項演算子の `?` の直後にある値が選ばれ、"成人" という文字列が出力されるのが正解です。
【正解の理由】
三項演算子 `条件式 ? 値1 : 値2` は、条件式が真(true)の場合は値1を、偽(false)の場合は値2を返します。20は18以上なので条件式は真となり、"成人" が変数 `status` に代入されます。
【不正解の理由】
• 「コンソールに "未成年" という文字列が出力される」は誤り。条件式が偽(false)だった場合に選ばれる値です。
• 「コンソールに true という真偽値が出力される」は誤り。評価された結果の値(文字列)が代入されるため、真偽値そのものは代入されません。
• 「コンソールに false という真偽値が出力される」は誤り。条件式の結果は真であり、かつ真偽値そのものは出力されません。
• 「構文エラーとなりプログラムが停止する」は誤り。三項演算子の書き方として完全に正しい構文です。