FizzBu​​zz游戏 - 如何创建逗号分隔的字符串

时间:2015-03-01 19:53:24

标签: javascript function

我应该创建一个名为'fizzBu​​zz()'的函数,它接受两个参数'start'和'stop'并返回一个以逗号分隔的字符串。这些论点代表了游戏'Fizz Buzz'的起点和终点。 (http://en.wikipedia.org/wiki/Fizz_buzz)。很快就意味着,在一系列数字中,我应该将所有可被3整除的数字打印为Fizz,并将可被5整除的数字打印为Buzz,其余部分则为。该函数应该从开始到结束运行,并将'Fizz','Buzz'或两者添加到适当数字的'result'变量中。 如果'stop'等于或低于'start',则该函数应返回错误消息。

function fizzBuzz(start, stop) {
 for(var i= start; i <= stop; i++) {{
    if (i % 5 == 0)
        print "Buzz";
    else if (i % 3 == 0)
        print "Fizz";
    else
        print i;
}
 console.log(",")
}

我的问题是我不知道如何使循环工作。现在,当我尝试打印fizzBu​​zz(2,24)时,什么都没有出来。控制台告诉我第4行缺少半结肠(与“Buzz”相同的行。

另外,我想知道这是否适用于if / else语句,因为有些数字可以被3和5整除。使用开关会更聪明吗?

最后,我想在某处添加if语句,如下所示。 if(start == stop || start&gt; stop) 警报(“选择不同的数字”);

它应该在函数内吗? ||意思是“或”,这是正确的吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您的代码问题(除了额外的{之外)是您在return循环中调用for。这会导致函数停止并仅返回2.

你想要做的是在你添加数字的地方创建一个字符串变量然后返回它。这是我的意思的一个例子:

function fizzBuzz(start, stop) {
    var returnString = "";
    for (var i= start; i <= stop; i++) {
        if (i % 5 == 0)
            returnString += "Buzz";
        else if (i % 3 == 0)
            returnString += "Fizz";
        else
            returnString += i;
        returnString += ",";
    }
    return returnString;
}

编辑:抱歉,我没有看到你的第二个问题!是的,您应该在函数开头放置if(start == stop || start> stop) alarm("choose different numbers");的if语句,然后再运行任何其他代码(在我的示例中,在var returnString = "";之前,但在{之后)。但是,您应该注意两件事。首先,在JavaScript中显示消息的功能是alert,而不是alarm。其次,您应在return;之后的if中添加alert声明,以便在警告用户选择不同的数字后,您的功能不会继续。