Javascript 条件(num%3==0):为什么需要将其与0进行比较?
我这里有一个简单的泡沫:Javascript 条件(num%3==0):为什么需要将其与0进行比较?,javascript,fizzbuzz,Javascript,Fizzbuzz,我这里有一个简单的泡沫: 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'); brea
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++;
}
var num=1;
而(num假设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,如果一个数字mod 3等于0…?你不明白什么?我找不到一个关于这个比较意味着什么的清晰解释。为什么它不只是num%3
?如果(num%3)
和如果(num%3==0)
是完全相反的。当数字不可除时,前者为真,当数字不可除时,后者为真,因为如果num%3
计算为0,则0为假。相反,您需要检查是否等于0,如果可除则为真。仅供参考:num%3==0
和!(num%3)
是等效的-如果这有帮助的话,谢谢,我不明白模数检查余数(欢迎:)