0

このコードは、5 になるまでスコアを分割します。

$rows[score] は、データベースでは 6600 です。

<?php
    $i = $rows[score]; //score is 6600 in the database
    while ($i >= 5) {
        echo $i = $i /2; 
        echo "<br>";
}
?>

これは私のブラウザの出力です:

3300

1650年

825

412.5

206.25

103.125

51.5625

25.78125

12.890625

6.4453125

3.22265625

ブラウザーが最後の 3.22 を出力する理由がわかりません - ループが 5 未満の最後のものをエコーアウトしないようにするにはどうすればよいですか??

4

5 に答える 5

0

私は自分の質問に答える方法を見つけたので、3,22 はページに表示されません。

<?php
$i = $rows[score]; //score is 6600 in the database
while ($i >= 5) {
    $i = $i /2; 

    if($i >= 5) {
    echo $i;
    echo "<br>";
    }
}
?>
于 2013-04-23T16:44:59.670 に答える
0

ループに入らない場合($i<5)は、確認するまで知る方法がありません。$i = 6.4453125最後にチェックするので、ループに入って2で割ります。これにより、5未満になるため、再びループに入らずに停止します。

于 2013-04-23T16:30:34.773 に答える