编写应用程序的说明如下: 01.打印1到20之间的数字。 02.规则: - 对于可被3整除的数字,请打印出#34; Fizz"。 - 对于可被5整除的数字,请打印出#34; Buzz"。 - 对于可被3和5整除的数字,打印出" FizzBuzz"在控制台中。 - 否则,只需打印出数字。
以下是我写的JavaScript:
for (var i = 1; i <= 20; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log("FizzBuzz");
}
if (i % 5 ===0) {
console.log("Buzz");
}
else if (i % 3 === 0) {
console.log("Fizz");
}
else { console.log(i);
}
}
以上代码打印(或记录到控制台)以下结果:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
Buzz
16
17
Fizz
19
Buzz
然而,即使对我来说似乎正确,我运行代码后得到的消息是:&#34;糟糕,再试一次。看起来你打印出错误数量的物品。&#34;
我知道我可能犯了一个愚蠢的错误,但我无法弄明白,我已经花了足够的时间尝试无济于事。
答案 0 :(得分:2)
对于15,你的输出是FizzBuzz,还有Buzz。这是因为在你的代码中,你写了一个if语句来处理5个案例的可分性。相反,你应该使用else,如果你对3个案例的可分性一样。您的代码应如下所示:
for (var 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);
}
}
答案 1 :(得分:1)
你需要一个else,因为如果没有插入其他的ifs会被评估
14
FizzBuzz right (15)
Buzz wrong (15)
16
代码:
if (i % 3 === 0 && i % 5 === 0) {
console.log("FizzBuzz");
}
else if (i % 5 ===0) { // <------------------- insert else!
console.log("Buzz");
}
答案 2 :(得分:1)
在
之前添加else
if (i % 5 ===0) {
删除错误的Buzz
并删除<{1}}之前的<{p}}
else
始终显示数字(可能该行应该是第一行)。
代码现在应该是:
console.log(i);