JavaScript条件语句实现按年龄与国家输出对应提示的问题求助
代码问题修正
现有代码的错误点
- 年龄边界不符合要求:要求的「未满18」是
<18、「未满21」是<21,你用了<=会把18、21岁的场景错分到错误分支 - 国家判断逻辑错误:不需要额外定义
otherCountry变量,直接判断country变量是否等于'USA'即可,当前你写的&& country和&& otherCountry只是判断变量是否存在,永远为真,永远只会走到第一个匹配的分支 - 输出字符串拼写、内容和要求不一致,存在漏字、错字问题
- 包含多余的测试打印语句
修正后可直接运行的代码
const age = 20 const country = 'USA' if (age < 16) { console.log("You're not old enough to do anything yet.") } else if (age >= 16 && age < 18) { console.log("Be careful driving.") } else if (age >= 18 && age < 21 && country === 'USA') { console.log("Go Vote!") } else if (age >= 18 && age < 21 && country !== 'USA') { console.log("You can probably have some wine.") } else { console.log("You're old enough to figure it out for yourself.") }
优化建议
如果想减少重复的年龄判断,也可以把国家判断嵌套在18-21岁的分支内,代码更简洁:
const age = 20 const country = 'USA' if (age < 16) { console.log("You're not old enough to do anything yet.") } else if (age >= 16 && age < 18) { console.log("Be careful driving.") } else if (age >= 18 && age < 21) { country === 'USA' ? console.log("Go Vote!") : console.log("You can probably have some wine.") } else { console.log("You're old enough to figure it out for yourself.") }
内容的提问来源于stack exchange,提问作者Rothhelm
相关产品推荐
相关产品推荐

