JavaScript条件语句问题:年龄判断学校函数无法通过测试求排查
问题排查与代码修正
嘿,我一眼就看到问题出在哪了——你的代码里有几个致命的语法小错误,直接搞乱了整个逻辑判断,这肯定过不了自动化测试!
核心错误分析
- 多余的分号破坏条件逻辑:每个
if和else if语句末尾的分号;是罪魁祸首!在JavaScript里,if (age < 13);里的分号会被解析成一个空语句,意味着条件判断后什么都不执行,紧接着的{}就变成了一个独立的代码块。不管age的值是多少,第一个代码块里的return "Elementary School"都会直接执行,后面的else if分支根本没机会触发。这就导致所有输入都会返回同一个结果,测试自然失败。 - 冗余的条件判断:最后一个
else if (age >= 19)完全没必要,因为前面已经覆盖了age <13和13<=age<=18的情况,剩下的所有情况(不管是18.5还是200)都应该返回"College",用else更简洁也更严谨。
修正后的代码
function whichSchool(age) { if (age < 13) { return "Elementary School"; } else if (age >= 13 && age <= 18) { return "Secondary School"; } else { return "College"; } }
额外提一句:return语句里的括号是多余的,JavaScript允许直接返回值,加括号虽然不报错,但去掉会让代码更规范简洁。
内容的提问来源于stack exchange,提问作者TorontoJ10
相关产品推荐
相关产品推荐

