0

以下是 Codecademy 的说明:

打印出 1 - 20 的数字。

对于能被 3 整除的数字,打印出“Fizz”。

对于能被 5 整除的数字,打印出“Buzz”。

对于能被 3 和 5 整除的数字,在控制台中打印出“FizzBu​​zz”。

否则,只需打印出数字即可。

这是我的代码:

for (i = 1; i <= 20; i++) {
    if (i % 3 == 0) {
    console.log("Fizz");
    }
    else if (i % 5 == 0) {
    console.log("Buzz");    
    }
    else if (i % 3 == 0 && i % 5 == 0) {
    console.log("FizzBuzz");
    }
    else {
    console.log(i);    
    }
}

问题是它不会为数字 15 打印“FizzBu​​zz”。它只会打印“Fizz”。

我在这里想念什么?

4

3 回答 3

1

else if 仅在到目前为止所有其他语句都是错误的情况下运行。由于 i % 3 为真,剩下的 else/if 语句将永远不会运行。尝试这样的事情:

for (i = 1; i <= 20; i++) {
    if (i % 3 == 0 && i % 5 == 0) {
        console.log("FizzBuzz");
    }
    else if (i % 5 == 0) {
        console.log("Buzz");    
    }
    else if (i % 3 == 0) {
        console.log("Fizz");
    }
    else {
        console.log(i);    
    }
}
于 2015-03-24T01:12:21.547 回答
1

如果您想使用嵌套条件,这似乎可行。

for ( i=1 ; i < 21 ; i++){
    if(i % 3 === 0) {
        if(i % 5 === 0){
            console.log("FizzBuzz");
        }
        else {
            console.log("Fizz");
        }
    }
    else if (i % 5 === 0) {
        if ( i % 3 === 0){
            console.log("FizzBuzz");
        }
        else{
            console.log("Buzz");
        }
    }
    else{
        console.log(i);
    }
}
于 2016-09-21T20:50:46.693 回答
0

使用三元运算符(if-else 语句的单行简写)在​​ javascript 中直接使用 fizzBu​​zz 来了解三元运算符 go here

var i = 1;
while (i <= 20){
    console.log((i % 3 === 0 && i % 5 === 0) ? "FizzBuzz" : (i % 3 === 0) ? "Fizz" : (i % 5 === 0 ? "Buzz" : i));
    i++;
}
于 2016-10-03T18:21:22.317 回答