今回はphpでFizzBuzz問題を書きました。と言っても前回とほとんどおんなじようなコードです。
FizzBuzz問題とは?
1から100まで順に数えて出力して行き、3で割り切れる数は「Fizz」5で割り切れる数は「Buzz」両方で割り切れる数は「FizzBuzz」と出力する、ようにプログラムを書く問題です。
これが書けるか書けないかでプログラマー志願者を仕分けられるようになったようです。実際今でも使われていますから押さえておいて損はないと思います。FizzBuzz詳細
私が書いたコード
sample.php
<?php
$i = 0;
for($i = 1; $i < 100; $i++) {
if($i % 15 === 0) {
print "FizzBuzz!<br />";
} else if ($i % 5 === 0) {
print "Buzz<br />";
} else if ($i % 3 === 0) {
print "Fizz<br />";
} else {
print $i."<br />";
}
}
?>
書く順番
前回同様、ifは条件が厳しいものから順番に書いていった方が良いです。今回の問題だと"Fizz"や"Buzz"を表示させるifを先に書いてしまうと3と5の倍数の数字がif文を通過するとき、3の倍数をFizzに置き換えるところで条件を満たしてしまうのでその先の処理は行わないからです。