Ваша конкретная проблема заключается в том, что вы неправильно понимаете цикл for
и что такие операторы, как "somestring"
или i
, на самом деле ничего не делают. То, что вы хотите сделать, это вывести его на консоль (или другой выходной поток какого-либо рода) - как это сделать, зависит от среды, в которой работает ваш Javascript, и от того, куда вы хотите, чтобы информация пошла.
Вы также можете помнить, что любое число, которое делится без остатка на три, и пять, кратно 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
Есть те, кто будет жаловаться на несколько точек выхода или перезапуска в цикле, но вы можете спокойно игнорировать их, поскольку они не понимают причин, лежащих в основе этого правила, чтобы избежать спагетти-кода.
Любой код, в котором вы видите весь поток управления на одной странице (например, одиннадцать строк выше), не может быть спагетти-кодом, особенно с учетом последовательной обработки.
Вот эквивалентный код 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
person
paxdiablo
schedule
10.01.2012