条件(num%3 === 0):为什么需要比较0?

时间:2017-01-22 04:47:06

标签: javascript fizzbuzz

我在这里有一个简单的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');
            break;
        case(num%5 === 0):
            console.log('buzz');
            break;
        default:
            console.log(num);
    }
    num++;
}

在此行中的模数后与0进行比较的含义是什么:num%3===0

为什么它只是num%3

2 个答案:

答案 0 :(得分:1)

如果您保留num%3而不是num%3===0 ,意义变化完全不能进入其中一个案例,它应该被3整除,所以如果它不是,它将进入默认情况,因为num%3不会等于0。 简而言之,我们使用%运算符来检查它是否可被整除,就好像答案出现为0,当且仅当它是可整除的,即余数为0

答案 1 :(得分:0)

假设num = 1,num%3等于1.因此,如果您评估response,它将评估为true。而如果您评估if(num%3)是否将评估为false。

此外,===确保您在不同类型的情况下不允许任何值,但在这种情况下,==和===不会产生太大差异。