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

如何用if/else语句判定胜者?求运算符使用及代码解析

解析你的if/else运算符使用问题

嘿,我来帮你梳理这段代码里的问题,以及怎么正确在if/else里用运算符实现胜负判定!

核心问题:直接对对象做算术运算行不通

你现在的代码里直接写了oscar * 5和andrew *5,但oscar和andrew是对象类型,JavaScript没办法直接把对象和数字相乘——它会把对象转换成NaN(非数字值),所以你的三个条件里,前两个>和<的判断都会是false,最后只会走到else分支输出No winner,这显然不是你想要的结果。

正确的实现思路

你需要先从对象里取出要用来计算的属性(比如height或者age),再做乘法运算,最后用比较运算符判断大小。

修改后的代码示例

假设你想用身高来计算胜负,代码可以改成这样:

var oscar = { height: 155, age: 22 };
var andrew = { height: 170, age: 16 };

// 先计算两人的得分(身高×5)
const oscarScore = oscar.height * 5;
const andrewScore = andrew.height * 5;

if (oscarScore > andrewScore) {
    console.log('Oscar is the winner');
} else if (oscarScore < andrewScore) {
    console.log('Andrew is the winner');
} else {
    console.log('No winner');
}

代码里的运算符说明

  • 算术运算符*:用来完成乘法运算,这里是把每个对象的height属性值和5相乘,得到具体的得分数字
  • 比较运算符>/<:用来比较两个得分的大小,作为if/else的判断条件——如果oscarScore大于andrewScore,就执行第一个分支;如果更小就执行第二个分支;相等则走else

额外小技巧

因为两边都乘以同一个正数(5),其实比较得分的大小和直接比较属性值的结果是一样的,所以你也可以简化成这样(效果完全相同):

if (oscar.height > andrew.height) {
    console.log('Oscar is the winner');
} else if (oscar.height < andrew.height) {
    console.log('Andrew is the winner');
} else {
    console.log('No winner');
}

如果之后你想换成用age来计算,只需要把height改成age就可以啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:38:25