条件(num % 3 === 0):为什么要和0比较?
Condition (num % 3 === 0): why does it need to compare to 0?
我这里有一个简单的嘶嘶声:
var num = 1;
while (num <= 20) {
switch(true){
case(num%3 === 0 && num%5 === 0):
console.log('fizzbuzz');
break;
case(num%3 === 0):
console.log('fizz');
break;
case(num%5 === 0):
console.log('buzz');
break;
default:
console.log(num);
}
num++;
}
这行模数后与0
的比较是什么意思:num%3===0
?
为什么不只是 num%3
?
假设 num = 1,num%3 等于 1。因此如果您计算 if(num%3)
,它将计算为 true。而如果您评估 if(num%3===0)
if 将评估为 false。
此外,=== 确保您不允许在不同类型的情况下使用任何值,但是在这种情况下,== 和 === 不会有太大区别。
如果您保留 num%3
而不是 num%3===0
, 含义完全改变,因为进入其中一种情况,它应该被 3 整除,所以如果不是,它将进入默认情况,因为 num%3 不等于 0。
简而言之,我们使用 % 运算符来检查它是否可整除,就好像答案是 0 当且仅当它是可整除的,即余数是 0
我这里有一个简单的嘶嘶声:
var num = 1;
while (num <= 20) {
switch(true){
case(num%3 === 0 && num%5 === 0):
console.log('fizzbuzz');
break;
case(num%3 === 0):
console.log('fizz');
break;
case(num%5 === 0):
console.log('buzz');
break;
default:
console.log(num);
}
num++;
}
这行模数后与0
的比较是什么意思:num%3===0
?
为什么不只是 num%3
?
假设 num = 1,num%3 等于 1。因此如果您计算 if(num%3)
,它将计算为 true。而如果您评估 if(num%3===0)
if 将评估为 false。
此外,=== 确保您不允许在不同类型的情况下使用任何值,但是在这种情况下,== 和 === 不会有太大区别。
如果您保留 num%3
而不是 num%3===0
, 含义完全改变,因为进入其中一种情况,它应该被 3 整除,所以如果不是,它将进入默认情况,因为 num%3 不等于 0。
简而言之,我们使用 % 运算符来检查它是否可整除,就好像答案是 0 当且仅当它是可整除的,即余数是 0