[英]Switch…case in JS
This simple problem gives me an error.这个简单的问题给了我一个错误。 Does not get the correct answer.
得不到正确答案。 I will be glad if you help.
如果你能帮忙,我会很高兴。
let point = 90;
switch (point) {
case point >= 51 && point <= 60:
console.log('Your price: E');
break;
case point >= 61 && point <= 70:
console.log('Your price: D');
break;
case point >= 71 && point <= 80:
console.log('Your price: C');
break;
case point >= 81 && point <= 90:
console.log('Your price: B');
break;
case point >= 91 && point <= 100:
console.log('Your price: A');
break;
default:
console.log('You did not pass');
}
Output:
You did not pass Output:
你没有通过
this way这边走
let point = 90; switch (true) { case point >= 51 && point <= 60: console.log('Your price: E'); break; case point >= 61 && point <= 70: console.log('Your price: D'); break; case point >= 71 && point <= 80: console.log('Your price: C'); break; case point >= 81 && point <= 90: console.log('Your price: B'); break; case point >= 91 && point <= 100: console.log('Your price: A'); break; default: console.log('You did not pass'); }
can you explain why we write
true
?你能解释一下为什么我们写
true
吗? – Hussein Nadjafli (PO)– 侯赛因·纳贾弗利 (PO)
The JS switch
only works on strict equality. JS
switch
仅适用于严格相等。
switch (A) {
case ‘x1’: ...
case ‘x2’: ...
is equivalent to相当于
if (A === ’x1’) { ...
else if (A === ’x2’) { ...
in your code you replace the possible values ['x1','x2',...] with an evaluation like在您的代码中,您将可能的值['x1','x2',...]替换为类似的评估
(point >= 61 && point <= 70)
which returns either true
or false
返回
true
或false
so your code becomes:所以你的代码变成:
if (A === (point >= 51 && point <= 60)) { ...
else if (A === (point >= 61 && point <= 70)) { ...
by replacing the A
by true
you therefore have a comparison between:因此,通过将
A
替换为true
,您可以比较:
if (true === (point >= 51 && point <= 60)) { ...
else if (true === (point >= 61 && point <= 70)) { ...
You can also do:
你也可以这样做:
function codePrice(val) { let code = 'ABCDE'[10 - Math.ceil(val / 10)] return (?:code): `Your price. ${code}` :'You did not pass' } console.log( codePrice(90) )
Can also be simplified:也可以简化:
let point = 90; switch (true) { case point < 51: console.log('You did not pass'); break; case point < 61: console.log('Your price: E'); break; case point < 71: console.log('Your price: D'); break; case point < 81: console.log('Your price: C'); break; case point < 91: console.log('Your price: B'); break; default: console.log('Your price: A'); break }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.