3 回答
TA贡献2039条经验 获得超7个赞
您可以使用switch (true):
switch (true) {
case sum === 0:
alert('success');
break;
case sum < 50:
alert('also success');
break;
case sum > 50:
alert('failed');
break;
default:
alert('there is an error.')
break;
}
请注意,在您的代码中,第一种情况实际上是分配,并进行修改sum以将其设置为0。
TA贡献1829条经验 获得超6个赞
如您所料,它实际上不起作用,将switch语句与所有情况进行比较,例如:
switch (something)
{
case 1: // something == 1 ?
// ....
}
实际上,您所写的内容被解释为
var sum = 42;
switch(sum)
{
case sum < 50: // sum == sum < 50 ? -> 42 == 42 < 50 ? -> 42 == true ? false !
// ...
相反,您可以使用switch true语句。
// v------- convert the prompt to a numeric value
let sum = + prompt("enter sum:");
switch(true)
{
// VV----- notice the double equal
case sum == 0: // true == sum == 0 ?
alert("sucess");
break;
case sum > 50:
alert("also sucess");
break;
case sum < 50:
alert("failed");
break; // <---- You forgot a break; there
default:
alert("there is errorrrr");
break;
}
TA贡献1757条经验 获得超7个赞
你的想法很好
sum=20;
switch(true)
{
case 50:
alert("sucess");
break;
case (sum>50):
alert("also sucess");
break;
case sum<50:
alert("failed");
break;
default:
alert("there is errorrrr");
}
添加回答
举报