Ваши конкретные проблемы заключаются в том, что вы неправильно понимаете цикл 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