gpt4 book ai didi

javascript - switch 语句中的数字比较失败

转载 作者:行者123 更新时间:2023-12-02 16:26:18 24 4
gpt4 key购买 nike

“原始帖子”:此函数应将“a”的值与其他几个值进行比较,但始终使用默认值。我的测试表明“a”或“b”的值从未改变。我是否有 > 语句不正确或其他地方的情况?

现在我明白我不能在 case 语句中使用比较:

我应该使用一堆 if 语句和 while (a <> = 0) 来进行多重检查和递减吗?

下面的代码片段显示了具有特定值的“a”。在完整的函数中,实际上“a”从另一个函数中的随机数获取一个值。必须对照 16 个可能的值进行检查并递减,然后重新检查直至最终达到 0。比较值实际上是 2 的幂(1 到 16)。

    function solution() {        
var a = 18000;
var b = 0;

switch (a) {
case a > 30000:
a = a - 30000;
b = b++;
break;
case a > 16000:
b = b++; a = a - 16000;
break;
case a > 8000:
b = b++; a = a - 8000;
break;
default:
c = "defaulted!, Why?";
break;
}

window.alert (a + " " + b + " " + c);
}

最佳答案

不要使用 switch 来进行这样的范围检查。可以用

switch (true) {
case (a > 30000):
a = a - 30000;
b = b++;

但不要这样做。

使用 if/else 代替。虽然 switch 实际上只是一个抽象的 if/else 结构,但可以将它用于以下用途:

switch(a){
case 1: ...
}

关于javascript - switch 语句中的数字比较失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28649904/

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