[英]FizzBuzz game- how to create a comma-separated string
我应该创建一个名为'fizzBuzz()'的函数,它接受两个参数'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(",")
}
我的问题是我不知道如何使循环工作。 现在,当我尝试打印fizzBuzz(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.