我刚刚做了fizz嗡嗡声测试,但我的答案与以下答案不同。我将第一个“if”语句(即i%3===0 && i%5===0
)作为我的最后一个“else if”语句而不是由于某种原因它不起作用。然而,我的逻辑是一样的。
有谁知道为什么它不起作用?你为if,else语句放置哪个位置真的很重要吗?以下是答案的关键。
for(var i = 1; i < 100; i++){
if(i%3 === 0 && i%5 === 0){
console.log("FizzBuzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if(i%5 === 0){
console.log("Buzz");
}
else {
console.log(i);
}
}
这是我的回答:
for(var i = 1; i < 100; i++){
if (i%5 === 0){
console.log("Buzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if (i%3 === 0 && i%5 === 0){
console.log("FizzBuzz");
}
else {
console.log(i);
}
}
答案 0 :(得分:3)
如果您将if (i%3 === 0 && i%5 === 0)
作为链中的最后一个if
,则只会输入一个之前的分支 - 即if (i%3 === 0)
或if (i%5 === 0)
。由于您使用的是else if
,因此控件永远不会输入合并的“FizzBuzz”if
。
例如:让我们说i = 15
。如果您有以下代码:
if(i%3 === 0 && i%5 === 0) {
console.log("FizzBuzz");
}
else if(i%3 === 0) {
console.log("Fizz");
}
else if(i%5 === 0) {
console.log("Buzz");
}
else {
console.log(i);
}
您的输出将为FizzBuzz
。但是,如果将合并的if
移动到最后,请执行以下操作:
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);
}
然后您的输出将只有Fizz
,因为i%3 === 0
。