あなたの特定の問題は、あなたがループに対して間違った感覚を持っていること、for
そしてステートメントが実際には何もしない"somestring"
か、または何もしないことです。あなたがしたいのは、コンソール(またはある種の他の出力ストリーム)を出力することです-これを行う方法は、Javascriptが実行されている環境と情報の行き先によって異なります。i
また、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
ループ内の複数の出口または再開ポイントについて不平を言う人もいますが、スパゲッティコードを避けるために、そのガイドラインの背後にある理由を理解していないため、無視しても問題ありません。
1ページにすべての制御フローを表示できるコード(上記の11行など)は、特に一貫した処理を行うと、スパゲッティコードにすることはできません。
テスト用にWebページにパッケージ化された同等の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