php 無限ループの回避策
2013/07/29
無限ループの回避策について。
想定外が起こらないような条件で、breakやreturnする。
無限ループに陥らないようにするのが基本だけど…想定外だってありうるんだよ。
$evasion = 0;
$num = 0;
while ($num < 9) {
echo $num;
$num = mt_rand(0, 10);
$num = 0;
while ($num < 9) {
echo $num;
$num = mt_rand(0, 10);
$evasion++;
if (10 < $evasion) {
break;
}
}
上記の場合だと、$numをランダムで決めて、9か10になったときのみループを抜ける。
無限ループとは違うけどいつ終わるか分からないループ。
万が一を考えて、10回で無理やりループを抜けている。
もちろん、$evasionの記述の抜けやミスがあればやっぱり無限になる。
コレを忘れたら意味ないけどね。