FizzBuzz問題を考える。

  • 1から100までの整数を表示する。
  • 3の倍数のとき"Fizz"と表示し、5の倍数のとき"Buzz"と表示する。
  • 3と5の両方の倍数(つまり、15の倍数)のとき"FizzBuzz"と表示する。

他には及ばないが短い書き方。forよりwhileのほうが短い。

while(++$i<=100)echo($i%3*$i%5?$i:($i%3?'':'Fizz').($i%5?'':'Buzz'))."\n";

配列でループ。あまり短くならない。

function a($i){echo($i%3*$i%5?$i:($i%3?'':'Fizz').($i%5?'':'Buzz'))."\n";}
array_walk(range(1,100),'a');

ifを使わずswitchを使う。

while(++$i<=100){
	switch(0){
		case $i%15:echo 'FizzBuzz';break;
		case $i%5:echo 'Buzz';break;
		case $i%3:echo 'Fizz';break;
		default:echo $i;
	}
	echo "\n";
}