PHPでFizzBuzz問題

新人プログラマがIF文、FOR文、演算子を覚えてきたら
まずはFizzBuzzテストで確認してみよう。

FizzBuzz問題とは?


1 から順に数を数えていく。但し、その数が 3 で割り切れるならば数字の代わりに Fizz と、5 で割り切れるなら Buzz と言うゲーム。3 でも 5 でも割り切れる場合は、FizzBuzz の順に言う。これをプログラミングさせるテストをFizz-Buzz問題という。
by はてなキーワードより
http://d.hatena.ne.jp/keyword/FizzBuzz

FizzBuzz問題をまとめると…
・ 1〜100までを繰り返し出力
・ 但し、 3の倍数(3で割り切れる)には、Fizzを付加して出力
・ 但し、 5の倍数(5で割り切れる)には、Buzzを付加して出力
・ 但し、15の倍数(15で割り切れる)には、FizzBuzzを付加して出力




ということで問題を解いてみよう。


FizzBuzz答え

答えは一つじゃないけど、可読性のある記述がいい。とりあえず3つほど挙げておく

解答例①

for ($i=1; $i<=100; $i++) {
  echo $i;
    if($i%3 == 0){
        echo "Fizz";
    }
    if($i%5 == 0){
        echo "Buzz";
    }
    echo "<br>";
}

解答例②

for($i=1; $i<=100; $i++){
    $out = $i;
    if($i%3 == 0){
        $out .= "Fizz";
    }
    if($i%5 == 0){
        $out .= "Buzz";
    }
    echo  $out."<br>";
}

解答例③

for($i=1; $i<=100; $i++){
    $out = (($i%3 == 0) ? "Fizz" : "").(( $i%5 == 0 ) ? "Buzz" : "" );
    echo  $i.$out."<br>";
}

最後の③は、三項演算子を用いた解答例です。
echo "<br>"は、出力時に見やすくする為に入れてるだけです。