iaiotas
2017-03-23 23:02
看这个代码 如果喂食后$sum已经大于100了,还是会继续打印“我还没吃饱呢”,然后回到开始的条件判断那里,才能发现$sum大于100终止循环吧?很奇怪
这段代码是有这个问题的,会多打印一次"我还没吃饱呢"
其实最后一次我没吃饱跟我吃饱了的值是一样的
<?php
$sum = 12;//小宠物当前的饥饿程度
echo "我饿啦:-(";
echo "<br />";
$count =0;
while($sum<100){//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
$num = rand(1,20);//随机数,模拟喂食小宠物的小面包
echo "本次喂食:".$num." ,";
$sum = $sum + $num; //小宠物吃小面包
$count++;
echo "当前喂食次数:".$count."<br />";
if($sum<100){
echo "我还没吃饱呢!";
}
echo "当前体力值为:".$sum."<br />";
echo "<br />";
}
echo "终于吃饱啦^_^";
?>
打印之前判断下就好了,不过每次循环都判断会影响效率
<?php
$sum = 12;//小宠物当前的饥饿程度
echo "我饿啦:-(";
echo "<br />";
while($sum<100){//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
$num = rand(1,20);//随机数,模拟喂食小宠物的小面包
$sum = $sum + $num; //小宠物吃小面包
if($sum>=100)
{
break;
}
echo "我还没吃饱呢!";
echo "<br />";
}
echo "终于吃饱啦^_^";
?>
跟空格没关系
”<“用了空格好像就会有这个问题
PHP入门篇
455957 学习 · 6306 问题
相似问题