仕様は「20 歳以上なら許可」。このコードへの指摘として正しいものは?
if (user.age > 18) { allowPurchase();}正答
- > 18 だと 19 歳も通る。仕様どおりなら >= 20
- 1 行しかないので if の中括弧は省略すべき
- user.age は user['age'] と書かないと読めない
- 関数名は allow_purchase の形にすべき
解説
仕様は 20 歳以上なので、条件は user.age >= 20 が正しい。> 18 では 19 歳も許可され、仕様違反の不具合になる。こうした誤りは境界の値で確かめると見つけやすい。中括弧の省略や命名の形式はスタイルの話で、チームの規約が無い限り動作には影響しない。user.age と user['age'] はどちらも同じプロパティを読むので、3 番目は存在しない問題を挙げている。
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ