1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。」というものだ。最初問題を見た時、なんとなくforとifを使うんだろうなと思ったが、書いてみると1発ではうまくいかなかった。 そして、実際に完成したコードはこちら。
<?php
for($i=1; $i<100; $i++){
if($i%15==0){
echo "FizzBuzz";
}else if($i%3==0){
echo "Fizz";
}else if($i%5==0){
echo "Buzz";
}else{
echo $i;
}
}
?>
最初に書いたものはifの出力にechoではなく、ただ単に$i=”FizzBuzz”と代入して最後にechoで一気に出力させるという意味のわからないことをやってしまった。 当然エラー。
次に書きなおしたものも失敗。 「$i % 3==0」を先に書いていたので、15の倍数の時に「Fizz」としか表示されず。 それを修正してやっと完成!ただ本やコードを読むだけじゃなく、実際にコードを書いてみるといういわゆるアウトプットという作業も大事だなぁと思った。 クオテーションの付け忘れなどの細かいところの間違いも読むだけじゃ中々身につかないので、ある程度プログラムの概要が分かってきたら、コードをどんどん書いていきたい。