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

JavaScript中if else语句无论用户输入如何始终返回最后一个else分支

问题原因与解决方法

核心问题

你代码里的所有条件判断都在拿**字符串'age'**和数字做比较,而不是引用你定义的变量age。字符串'age'在和数字比较时会被转换为NaN,所有比较结果都是false,所以不管输入什么,都会走到最后的else分支,弹出"You are a senior!"。

另外,prompt()返回的是字符串类型,直接和数字比较可能出现意外问题,需要先把输入转换为数字。

修正后的代码

var age = Number(prompt('How old are you?'));
if (age <= 5){
    alert("You are a baby!");
}
else if (age >= 5 && age < 18){
    alert("You are a child!");
}
else if (age >= 18 && age < 70){
    alert("You are an adult!");
}
else {
    alert("You are a senior!");
}

修改说明

  • 去掉了条件里的单引号,直接使用变量age
  • 用Number()把prompt返回的字符串转为数字类型,确保比较逻辑正确
  • 给最后一个else加上了大括号,让代码结构更规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:02:04