javascript - 带 for 循环的 Fizzbuzz 游戏

标签 javascript if-statement for-loop fizzbuzz

我正在尝试执行一个函数,在我的 console.log 中打印 1-27 之间的数字。

当一个数字可以被3整除时,应该用“Fizz”替换该数字
当一个数字可以被 5 整除时,将其替换为“Buzz”。
如果数字可以同时被 3 和 5 整除,则将其替换为“Fizzbuzz”

引用:http://en.wikipedia.org/wiki/Fizz_buzz )

这是我的代码:

 var fizzbuzz = function(start,stop) {
    for (var x=1;x <= stop; x++)
        var string =',';
    if (x%3 == 0) {
            string += 'Fizz';
    }
    if (x%5 ==  0){
        string += 'Buzz';
    }
    if (x%5 && x%3){
        string += 'Fizzbuzz';
    }
    return string;
};

Console.log 给了我“,”,我不确定我做错了什么。

只是为了澄清。 我希望我的答案打印出来 1,2,Fizz,4,Buzz,Fizz,7,8,Fizz,Buzz,11,Fizz,13,14,Fizz Buzz,16,17,Fizz,19,Buzz ,Fizz,22,23,Fizz,Buzz,26,Fizz 等等,具体取决于 If 语句中的“stop”。

最佳答案

Valentins 评论是正确的,您确实需要在循环周围添加括号。 然而,您还在循环的每次迭代中重新定义字符串 var。

最后一个 if 也会使输出有点错误,例如 15 会命中所有 3 个语句并打印 FizzBu​​zzFizzBu​​zz

所以选择类似的东西

var fizzbuzz = function(start,stop) {
  var string = '';
  var addComma = false;
  for (var x=1;x <= stop; x++){
    addComma = false;
    if (x%3 == 0) {
        string += 'Fizz';
        addComma = true;
    }
    if (x%5 ==  0){
        string += 'Buzz';
        addComma = true;
    }
    if(addComma && x!== stop){
        string+=','
    }
  }
  return string;
};

这不是跟踪在何处添加逗号的最佳方法,但它可以完成任务。

关于javascript - 带 for 循环的 Fizzbuzz 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28344007/

相关文章:

java - 使 if-else 解决方案更高效、代码行更少 (Java)

javascript - 使用Javascript D3库,如何替换矩形选择中的数据?

javascript - 如何以编程方式将选项添加到 selectize.js 中的选项组

javascript - 需要帮助在 ASP.NET Web 窗体中使用 jQuery 遍历元素

php - while 语句跳过第一行

r - 如何将数据帧中的向量值与 R 中的常量进行比较?

c# - for循环的逻辑错误在哪里

javascript - 循环的文件预览可以很好地处理一个项目,两个或多个文件重复最后一个文件

c++ - 你觉得这个 for 循环宏怎么样?

javascript - 如何使用 requestAnimationFrame 循环播放多个方 block 的动画