开关语句和模数
Switch Statements and Modulo
您好,我对为什么在此函数中没有记录任何内容感到有点困惑。如果我通过函数传递 10,不应该记录 'case2' 吗?我认为这与我编写模线的方式有关...
function helloWorld(num) {
switch (num){
case num % 3 === 0:
console.log('case1');
break
case num % 5 === 0:
console.log('case2');
break
case num % 3 === 0 && num % 5 ===0:
console.log('case3');
break
}
}
helloWorld(10);
case
语句用于将一个值与 switch
语句中指定的值进行比较。
您正在每个 case
中添加一个布尔条件,强制执行意外行为。你所做的在形式上是正确的,但在语义上是不正确的。
这是正确的代码:
function helloWorld(num) {
if((num % 3) === 0)
console.log('case1');
else if((num % 5) === 0)
console.log('case2');
else if((num % 3) === 0 && (num % 5) === 0)
console.log('case3');
}
helloWorld(10);
有关 switch
声明的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
您好,我对为什么在此函数中没有记录任何内容感到有点困惑。如果我通过函数传递 10,不应该记录 'case2' 吗?我认为这与我编写模线的方式有关...
function helloWorld(num) {
switch (num){
case num % 3 === 0:
console.log('case1');
break
case num % 5 === 0:
console.log('case2');
break
case num % 3 === 0 && num % 5 ===0:
console.log('case3');
break
}
}
helloWorld(10);
case
语句用于将一个值与 switch
语句中指定的值进行比较。
您正在每个 case
中添加一个布尔条件,强制执行意外行为。你所做的在形式上是正确的,但在语义上是不正确的。
这是正确的代码:
function helloWorld(num) {
if((num % 3) === 0)
console.log('case1');
else if((num % 5) === 0)
console.log('case2');
else if((num % 3) === 0 && (num % 5) === 0)
console.log('case3');
}
helloWorld(10);
有关 switch
声明的更多信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch