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