javascript - 为什么我的比较没有产生预期的结果?
问题描述
我希望这会输出“失败”,而是输出“优秀”,即使正在比较的值与该比较不匹配。
我的代码有什么问题?
let grade = 99;
if(140 <= grade <= 150) {
console.log('Excellent');
}
else if(100 <= grade) {
console.log('Very Good');
}
else if(grade < 100) {
console.log('Failed');
}
解决方案
这不是进行多重比较的方式:
if (140 <= grade <= 150)
在这种情况下,前半部分将评估为true
or false
,其余部分将是类似的东西true <= 150
,这没有什么意义。
相反,与其从直觉的角度来思考,不如从逻辑运算的组合来思考。您想要的两个操作是:
140 <= grade
grade <= 150
将它们与“and”运算符结合起来:
if (140 <= grade && grade <= 150)
结果:
let grade = 99;
if (140 <= grade && grade <= 150) {
console.log('Excellent');
} else if(100 <= grade) {
console.log('Very Good');
} else if(grade < 100) {
console.log('Failed');
}
推荐阅读
- c# - OnCollisionEnter 在应该被调用的时候没有被调用
- sql - 如何将水晶报表代码中的If语句转换为SQL case语句
- c - 自定义 WM_APP 消息未发布在消息队列中
- python - 如何解决jupyter notebook中“启动内核失败”的问题
- amazon-web-services - AWS ECS 最近创建的实例没有配置 ssh authorized_keys
- python-3.x - 如何在python中同步两个音频文件?
- mysql - MySQL ")" 在这个位置无效,需要一个标识符
- java - 多对多关系上的 PostgreSQL 约束冲突错误,但应存在外键
- go - 符文与字节范围在字符串上
- c - 用运算符判断真假