Codecademy FizzBuzz 应用程序有效但未被接受为答案
Codecademy FizzBuzz app works but is not accepted as answer
编写应用程序的说明是:
01.打印出1-20的数字。
02.规则:
- 对于能被 3 整除的数字,打印出 "Fizz"。
- 对于能被 5 整除的数字,打印出 "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
然而,即使在我看来是正确的,我在 运行 代码后收到的消息是:"Oops, try again. It looks like you printed out the wrong number of items."
我知道我可能犯了一个愚蠢的错误,但我想不通,我已经花了足够多的时间尝试但无济于事。
你需要一个 else,因为如果没有插入 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");
}
对于 15,您的输出显示 FizzBuzz,还有 Buzz。这是因为在您的代码中,您编写了一个 if 语句来处理被 5 整除的情况。相反,您应该使用 else if ,就像您对 3 case 的整除性所做的那样。您的代码应该如下所示:
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);
}
}
在
之前添加else
if (i % 5 ===0) {
去掉错误的Buzz
和去掉
之前的else
console.log(i);
始终显示数字(也许该行应该是第一行)。
代码现在应该是:
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");
}
console.log(i);
}
编写应用程序的说明是: 01.打印出1-20的数字。 02.规则: - 对于能被 3 整除的数字,打印出 "Fizz"。 - 对于能被 5 整除的数字,打印出 "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
然而,即使在我看来是正确的,我在 运行 代码后收到的消息是:"Oops, try again. It looks like you printed out the wrong number of items."
我知道我可能犯了一个愚蠢的错误,但我想不通,我已经花了足够多的时间尝试但无济于事。
你需要一个 else,因为如果没有插入 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");
}
对于 15,您的输出显示 FizzBuzz,还有 Buzz。这是因为在您的代码中,您编写了一个 if 语句来处理被 5 整除的情况。相反,您应该使用 else if ,就像您对 3 case 的整除性所做的那样。您的代码应该如下所示:
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);
}
}
在
之前添加else
if (i % 5 ===0) {
去掉错误的Buzz
和去掉
else
console.log(i);
始终显示数字(也许该行应该是第一行)。
代码现在应该是:
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");
}
console.log(i);
}