繁体   English   中英

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

[英]FizzBuzz game- how to create a comma-separated string

我应该创建一个名为'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> stop)alarm(“选择不同的数字”);

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

提前致谢!

代码的问题(除了额外的{ )是你在for循环中调用return 这会导致函数停止并仅返回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语句用于if(start == stop || start> stop) alarm("choose different numbers"); 在函数的开头,在运行任何其他代码之前(在我的例子中,在var returnString = "";但在{ )之后。 但是,您应该注意两件事。 首先,在JavaScript中显示消息的功能是alert ,而不是alarm 其次,你应该包括一个return; alert之后的if语句中,以便在警告用户选择不同的号码后,您的功能不会继续。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM