【问题标题】:Codecademy FizzBuzz app works but is not accepted as answerCodecademy FizzBu​​zz 应用程序有效,但不被接受为答案
【发布时间】:2016-01-12 14:39:11
【问题描述】:

编写应用程序的说明如下: 01.打印出1-20的数字。 02. 规则: - 对于能被 3 整除的数字,打印出“Fizz”。 - 对于能被 5 整除的数字,打印出“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

但是,即使在我看来是正确的,我在运行代码后收到的消息是:“糟糕,再试一次。看起来你打印的项目数量有误。”

我知道我可能犯了一个愚蠢的错误,但我想不通,我花了足够多的时间尝试这件事无济于事。

【问题讨论】:

    标签: javascript fizzbuzz


    【解决方案1】:

    对于 15,您的输出显示 FizzBu​​zz 和 Buzz。这是因为在您的代码中,您编写了一个 if 语句来处理被 5 大小写的可分性。相反,您应该使用 else if ,就像您对被 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);
        }
    }
    

    【讨论】:

      【解决方案2】:

      你需要一个 else,因为如果没有插入 else,其他 if 会被评估

      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");
      }
      

      【讨论】:

        【解决方案3】:

        在前面添加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);
        }
        

        【讨论】:

          猜你喜欢
          • 2012-02-06
          • 1970-01-01
          • 2012-03-16
          • 2014-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多