【问题标题】:Stuck in Codecademy's Javascript fizzbuzz app [duplicate]卡在 Codecademy 的 Javascript fizzbuzz 应用程序中 [重复]
【发布时间】:2015-03-24 01:09:11
【问题描述】:

以下是 Codecademy 的说明:

打印出 1 - 20 的数字。

对于能被 3 整除的数字,打印出“Fizz”。

对于能被 5 整除的数字,打印出“Buzz”。

对于能被 3 和 5 整除的数字,在 控制台。

否则,只需打印出数字即可。

这是我的代码:

for (i = 1; i <= 20; i++) {
    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);    
    }
}

问题是它不会为数字 15 打印“FizzBu​​zz”。它只会打印“Fizz”。

我在这里错过了什么?

【问题讨论】:

  • 您应该考虑一个数字能被 15 整除意味着什么。考虑到 3 和 5 是 15 的因数。
  • 是的,你应该用简单的术语读出你的逻辑——如果 i 能被 3 整除,那么 Fizz,如果 i 不能被 3 整除,检查 i 是否能被 5 整除,然后 Buzz,如果 i 不能被 3 整除并且不能被 5 整除,请检查 i 是否能被 3 和 5 整除...因此您的问题

标签: javascript fizzbuzz


【解决方案1】:

else if 仅在到目前为止所有其他语句都为假的情况下运行。由于 i % 3 为真,剩下的 else/if 语句将永远不会运行。试试这样的:

for (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】:

    如果您想使用嵌套条件,这似乎可行。

    for ( i=1 ; i < 21 ; i++){
        if(i % 3 === 0) {
            if(i % 5 === 0){
                console.log("FizzBuzz");
            }
            else {
                console.log("Fizz");
            }
        }
        else if (i % 5 === 0) {
            if ( i % 3 === 0){
                console.log("FizzBuzz");
            }
            else{
                console.log("Buzz");
            }
        }
        else{
            console.log(i);
        }
    }
    

    【讨论】:

      【解决方案3】:

      在 javascript 中使用三元运算符直接 fizzBu​​zz(if-else 语句的单行简写) 要了解三元运算符,请转到here

      var i = 1;
      while (i <= 20){
          console.log((i % 3 === 0 && i % 5 === 0) ? "FizzBuzz" : (i % 3 === 0) ? "Fizz" : (i % 5 === 0 ? "Buzz" : i));
          i++;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-06-16
        • 1970-01-01
        • 2015-02-15
        • 2012-02-06
        • 2014-02-01
        • 2019-12-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多