Php 而循环除法则低于确定的数值
此代码将除以分数,直到达到数字5 数据库中的$rows[score]等于6600Php 而循环除法则低于确定的数值,php,while-loop,division,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.562
<?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的值???因为6大于5?因此,它又做了一个循环,循环停止时$I3.2。这里没有任何错误。你得到的最后一个值来自
6.4453125/2=3.22265625
,因为6.4453125
仍然大于5
如果($i我找到了回答我自己问题的方法,所以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>";
}
}
?>
由于在显示结果之前要除以2,因此当$i>=(5*2)即$i>=10而不是5时,您希望停止循环
<?php
$i = $rows[score]; //score is 6600 in the database
while ($i >= 10) {
echo $i = $i /2;
echo "<br>";
}
?>
如何阻止循环回显3.2值?如何阻止循环回显3.2值?您可以将$I
设置为至少大于6.4453125
,例如while($I>=6.5)
对同一事物测试$I两次是毫无意义的。为什么不将条件更改为while($I>=6.5)
?将输出6.4,然后终止
3300
1650
825
412.5
206.25
103.125
51.5625
25.78125
12.890625
6.4453125