You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codecademy Race Day项目else语句异常:年龄设为18时未触发

问题分析与修复

你代码里的问题出在第三个else if的条件判断上。当前的early || !early && age < 18由于逻辑运算符优先级(&&比||高),实际等价于early || (!early && age < 18)。当age=18且early=true时,这个条件会直接成立,导致代码进入这个分支,永远碰不到最后的else。

修复后的代码

let raceNumber = Math.floor(Math.random() * 1000);
const early = true;
const age = 18;

if (early && age > 18) {
  raceNumber += 1000;
  console.log("Your race starts at 9:30am, and your number is " + raceNumber + ".");
} else if (!early && age > 18) {
  console.log("Your race starts at 11:00am, and your number is " + raceNumber + ".");
} else if (age < 18) { // 简化条件,前面已排除age>18的情况
  console.log('Your race starts at 12:30pm, and your number is ' + raceNumber + '.');
} else {
  console.log('Please see the registration desk for your race time and number');
}

修复说明

  • 把第三个else if的条件简化为age < 18即可,前面两个条件已经处理了所有age>18的情况,剩下的只有age<=18,这里判断age<18,最后else自然会处理age=18的场景。
  • 要是想保留原逻辑的结构,也可以把第三个条件改成(early || !early) && age < 18,但完全没必要,直接写age < 18更简洁清晰。

内容的提问来源于stack exchange,提问作者Ryan Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:54:57