我正在尝试执行一个将在console.log中打印1-27之间的数字的功能。
当数字可以除以3时,应将其替换为“ Fizz”
如果数字可以除以5,则将其替换为“嗡嗡声”。
如果该数字可以同时除以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语句中的“停止”。 最佳答案
Valentins的评论是正确的,您确实需要在循环中添加方括号。
但是,您还需要在循环的每次迭代中重新定义字符串var。
最后一个if也使输出有点错误,例如15将命中所有3条语句并打印FizzBuzzFizzBuzz
所以去像
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 - 带循环的Fizzbuzz游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28344007/