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

为何JavaScript未执行else分支?小费计算函数逻辑异常

问题原因:555账单错误按15%计算小费

你的代码核心问题出在calcTip函数的条件判断逻辑上:

你写的条件是bill >= 50 || bill <= 300,这里用了逻辑或(||),它的规则是只要任意一个条件为真,整个判断就为真。

对于555这个数值来说,它满足bill >= 50(555确实大于50),所以条件判断直接成立,执行了return bill * 0.15的逻辑,而不是进入else分支。

正确的区间判断应该用逻辑与(&&),表示必须同时满足「大于等于50」和「小于等于300」两个条件,才按15%计算小费。

修正后的代码如下:

const calcTip = bill => {
    if (bill >= 50 && bill <= 300){
        return bill * 0.15
    } else {
        return bill * 0.20
    }
};
const bills = [125, 555, 44];
const tips = [calcTip(bills[0]), calcTip(bills[1]), calcTip(bills[2])];
console.log(tips[1]) // 输出111,即555*0.2

简单总结:区间判断要用&&来关联两个边界条件,||会导致范围判断逻辑完全错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:16:09