您的具体问题是您对for
循环有错误的认识,并且声明喜欢"somestring"
或i
实际上没有做任何事情。您想要做的是将它输出到控制台(或某种其他输出流) - 如何执行此操作取决于您的 Javascript 运行的环境以及您希望信息去哪里。
您还可以记住,任何能被 3和5整除的数字都是15 的倍数。
因此,您可以通过以下方式简化代码:
for all numbers in range:
if num is a multiple of 15:
print "FizzBuzz"
continue for loop
if num is a multiple of 3:
print "Fizz"
continue for loop
if num is a multiple of 5:
print "Buzz"
continue for loop
print i
有些人会抱怨循环中有多个退出或重启点,但您可以放心地忽略它们,因为他们不理解该准则背后的原因,以避免意大利面条式代码。
任何可以在单个页面上看到所有控制流的代码(例如上面的 11 行)都不能成为意大利面条代码,尤其是在处理一致的情况下。
这是等效的 Javascript 代码,打包到网页中进行测试:
<html><head></head><body><script type="text/javascript">
var i;
for (i = 1; i <= 20; i++) {
if (i % 15 === 0) {
document.write ("FizzBuzz<br>");
continue;
};
if (i % 3 === 0) {
document.write ("Fizz<br>");
continue;
};
if (i % 5 === 0) {
document.write ("Buzz<br>");
continue;
};
document.write (i + "<br>");
}
</script></body></html>
根据需要输出:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz