gpt4 book ai didi

javascript - 条件练习 addWithSurcharge

转载 作者:行者123 更新时间:2023-12-03 23:01:12 26 4
gpt4 key购买 nike

我不明白为什么大于 20 的 b 参数在这里不起作用。查看结果
锻炼:
编写一个函数 addWithSurcharge 将两个金额与附加费相加。小于等于 10 的金额每增加 1 次附加费。大于 10 且小于等于 20 的金额每增加 2 次附加费。大于 20 的每次增加 3 次附加费。
示例: addWithSurcharge(10, 30) 应返回 44。

function addWithSurcharge(a,b) {
let sur1 = 0
if (a <= 10) {
sur1 = 1;
} else if (10 < a <= 20) {
sur1 = 2;
} else if (a > 20) {
sur1 = 3;
}

let sur2 = 0
if (b <= 10) {
sur2 = 1;
} else if (10 < b <= 20) {
sur2 = 2;
} else if (b > 20) {
sur2 = 3;
}

return a + b + sur1 + sur2;
}
results

最佳答案

问题
原因是你条件else if (10 < a <= 20)计算结果为 真实 .

  • 10 < a将被评估为 真实
  • true <= 20将被评估为 真实 .

  • 所以这个数字将被评估为 bool 值,每个大于 0 的数字都被评估为真。这就是为什么 true <= 20计算结果为 真实
    您可以通过此代码段检查这一点

    console.log(true <= 20)
    console.log(true <= 0)
    console.log(true <= -3)

    解决方案
    要定义范围,您应该像这样使用 && 运算符
     else if (10 < b && b <= 20) 
    然后它会
  • 查看 if 10 < 30评估为 真实
  • 查看 if 30 <= 20评估为
  • true && false将评估为

  • function addWithSurcharge(a,b) {
    let sur1 = 0
    if (a <= 10) {
    sur1 = 1;
    } else if (10 < a && a <= 20) {
    sur1 = 2;
    } else if (a > 20) {
    sur1 = 3;
    }

    let sur2 = 0
    if (b <= 10) {
    sur2 = 1;
    } else if (10 < b && b <= 20) {
    sur2 = 2;
    } else if (b > 20) {
    sur2 = 3;
    }

    return a + b + sur1 + sur2;
    }

    console.log(addWithSurcharge(10,30))

    关于javascript - 条件练习 addWithSurcharge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65632549/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com