Codecademy FizzBu​​zz应用程序有效,但不接受答案

时间:2016-01-12 14:39:11

标签: javascript fizzbuzz

编写应用程序的说明如下: 01.打印1到20之间的数字。 02.规则: - 对于可被3整除的数字,请打印出#34; Fizz"。 - 对于可被5整除的数字,请打印出#34; Buzz"。 - 对于可被3和5整除的数字,打印出" FizzBu​​zz"在控制台中。 - 否则,只需打印出数字。

以下是我写的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;

我知道我可能犯了一个愚蠢的错误,但我无法弄明白,我已经花了足够的时间尝试无济于事。

3 个答案:

答案 0 :(得分:2)

对于15,你的输出是FizzBu​​zz,还有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);