而循环除法低于决定的数字

时间:2013-04-23 16:26:58

标签: php while-loop division

此代码将分数除以数字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?

5 个答案:

答案 0 :(得分:2)

这里没有错,你得到的最后一个值来自6.4453125 / 2 = 3.22265625,因为6.4453125仍然大于5

答案 1 :(得分:0)

因为6高于5?所以它再循环制作$ i 3.2,循环停止

答案 2 :(得分:0)

如果($i<5)它不会进入循环但是在你检查之前无法知道。 $i = 6.4453125它最后一次检查,所以它进入循环并将它除以2,这使得它小于5,因此它不会再次进入循环并停止。

答案 3 :(得分: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>";
    }
}
?>

答案 4 :(得分:0)

由于您在显示结果之前立即除以2,因此您希望在$ i&gt; =(5 * 2)时停止循环,即$ i&gt; = 10,而不是5。

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

这给出了:

3300
1650
825
412.5
206.25
103.125
51.5625
25.78125
12.890625
6.4453125