为什么不'我的if/else语句不能正常工作

Why doesn't my if / else statement work properly?

本文关键字:常工作 不能 工作 语句 else 我的 if 为什么不      更新时间:2024-05-28

我正在尝试迭代数字变量中的数组,如果一个数字可以除以3,我将记录"fizz",如果它可以除以5,我将日志记录"buzz",并且如果一个数值可以除以3+5或15,我将记录"fizzbuzz"

这是工作代码:

var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
for (var i = 1; i <= numbers.length; i++) {  
    if (i % 15 === 0) {
        console.log("FizzBuzz");
    } else if (i % 5 === 0) {
        console.log("Buzz");
    } else if (i % 3 === 0) {
        console.log("Fizz");
    } else {
        console.log(i);
    }
};

这是我的原始代码,它不记录"fizzbuzz"

var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
for (var i = 1; i <= numbers.length; i++) {      
    if (i % 5 === 0) {
        console.log("Buzz");
    } else if (i % 3 === 0) {
        console.log("Fizz");
    } else if (i % 15 === 0) {
        console.log("FizzBuzz");
    } else {
        console.log(i);
    }
};

为什么(i%15===0)条件需要在其他两个条件之前?这不是很重要吗?

数字15可被3和5整除。如果你不先测试它,那么你永远不会达到目的。

让我们以30为例。如果你先检查15,你会发现它可以被15整除。然而,如果你先检查5或3,它将被标记为可被其中任何一个整除。

在其中一个条件计算为true后,您可以突破if块,不计算以下else-if/else语句。如果你想让其他人进行评估,你可以使用the-If语句,而不是else-If语句。

这是因为当您使用ELSE IF时,计算机首先检查第一个语句,然后检查其他语句,这意味着在第一个语句为false之后检查该语句。将IF用于所有。