gpt4 book ai didi

javascript - 我的 switch 语句始终返回未定义。什么

转载 作者:行者123 更新时间:2023-11-28 16:49:24 25 4
gpt4 key购买 nike

function tipCalculator(bill) {
switch (bill) {
case (bill < 50):
return bill * 0.2;
case (bill >= 50) && (bill < 200):
return bill * 0.15;
case (bill > 100):
return bill * 0.2
default:
console.log('this statement is empty');
}
};

console.log(tipCalculator(125));

它一直返回未定义。堆栈溢出要求我添加更多文本,但这里的问题确实不言而喻,所以我只想用完这个文本。请帮助奥比旺

最佳答案

您的 switch 语句也没有执行您认为它执行的操作:切换枚举值(大小写)。您只是在开关中使用 if-then 逻辑。 case (bill < 50)计算结果为case false ,不等于125 ,所以它会跳过这一点。每种情况都会发生这种情况,因为这些情况使用的是表达式,而不是实际值。

由于默认语句是唯一可能出现的语句,并且它不返回任何值,因此此开关将始终返回 undefined。

您可能需要如下代码:

function tipCalculator(bill) {
if (bill < 50) {
return bill * 0.2;
} else if (bill >= 50 && bill < 200) {
return bill * 0.15;
} else if (bill > 100) {
return bill * 0.2;
} else {
throw new Error('Unknown bill.')
}
};

console.log(tipCalculator(125));

关于javascript - 我的 switch 语句始终返回未定义。什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104009/

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