使用while循环的Fizz Buzz脚本卡在无限循环中 - php

sam*_*sam -2 php fizzbuzz while-loop

我正在尝试使用while循环来编写Fizz Buzz脚本,以循环显示数字,1-100并将echo每个数字循环到屏幕.

我正在使用模数运算符来查找数字是否为以下数字的倍数:

  • 3在这种情况下它回声Fizz,
  • 5在这种情况下它回声Buzz,
  • 或者如果它是3和5的倍数,那么它就会回归FizzBu​​zz

我已经编写了下面的代码,测试了它的所有部分,它似乎工作,但是当我运行脚本时,它会陷入无限循环,回显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++;
    }

}
Run Code Online (Sandbox Code Playgroud)

有什么想法我错了吗?

zer*_*kms 5

$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;
}
Run Code Online (Sandbox Code Playgroud)

在线演示:http://ideone.com/WbXZEd