-2

ループを使用して数字とそれぞれを画面whileに循環させる Fizz Buzz スクリプトを作成しようとしています。1-100echo

モジュラス演算子を使用して、数値が次の倍数であるかどうかを調べています。

  • 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++;
    }

}

私が間違っていたという考えはありますか?

4

1 に答える 1

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;
}

オンライン デモ: http://ideone.com/WbXZEd

于 2013-06-20T21:01:50.240 に答える