在特殊情况下添加if条件

Hun*_*ter 0 javascript

这是我的代码

for(var i = 1; i <= 20; i = i + 1)

if(i%3==0)  {
    console.log("Fizz");
}else if (i%5==0){
    console.log("Buzz");
} 
else {
    console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

答案是

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz
16
17
Fizz
19
Buzz
Run Code Online (Sandbox Code Playgroud)

但看看那个"15"......它说"Fizz"但它应该是"FizzBu​​zz",因为它可以被3和5整除!糟糕! 我该如何为这种情况添加特殊条件

Den*_*ret 5

当你这样做时if else if,你没有通过else if第一个条件验证.

这是你的问题的可能解决方案(有很多,没有非常优雅):

var special = false;
if (i%3==0) {
    console.log("Fizz");
    special = true
}
if (i%5==0){
    console.log("Buzz");
    special = true;
} 
if (!special) {
    console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

这是另一个:

var tolog = '';
if (i%3==0) {
    tolog += "Fizz";
}
if (i%5==0){
    tolog += "Buzz";
} 
console.log(tolog || i);
Run Code Online (Sandbox Code Playgroud)

示范