Скрипт Fizz Buzz, использующий цикл while, застрявший в бесконечном цикле - php
Я пытаюсь написать скрипт Fizz Buzz, используя while
цикл для циклического перебора чисел 1-100
а также echo
каждый на экран.
Я использую оператор модуля, чтобы найти, является ли число кратным:
- 3 в этом случае это повторяет Fizz,
- 5 в этом случае это эхо Buzz,
- или, если его кратно 3 и 5, это повторяет FizzBuzz
Я написал код ниже, проверил все его части, и он, кажется, работает, но когда я запускаю скрипт, он застревает в бесконечном цикле, повторяя Fizz
,
$i = 1;
while ($i <= 100) {
if ((3 % $i) === 0) {
echo 'Fizz';
$i = $i++;
} else if ((5 % $i) === 0) {
$i = $i++;
echo 'Buzz';
} else if ( ((3 % $i) === 0) && ((5 % $i) === 0)){
echo 'FizzBuzz';
} else {
echo $i++;
}
}
Есть идеи, что я ошибся?
1 ответ
Решение
$i = 1;
while ($i <= 100) {
$r = '';
if ($i % 3 === 0) {
$r .= 'Fizz';
}
if ($i % 5 === 0) {
$r .= 'Buzz';
}
if (!$r) {
$r = $i;
}
echo "$r\n";
++$i;
}
Демо онлайн: http://ideone.com/WbXZEd