为了账号安全,请及时绑定邮箱和手机立即绑定

判断是否吃饱为什么这里有bug呢,有时候会出现还没吃饱就判断为吃不下了

<?php
$sum = 12;//小宠物当前的饥饿程度
$now=0;
echo "我饿啦:-(";
echo "<br />";
while($sum<100)
{//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
    $num = rand(1,20);//随机数,模拟喂食小宠物的小面包
    $sum =($sum + $num)<=100?($sum + $num):($sum); //小宠物吃小面包
    echo "主人喂了我".$num."%的食物";
    echo ($now=($sum + $num)>100?("喂太多了,吃不下了,少点吧<br/>"."我已经吃了".$sum."%"):
         ("我还没吃饱呢!"."我已经吃了".$sum."%"));
    
    echo "<br />";  
 
    
}
echo "终于吃饱啦^_^";
?>

正在回答

5 回答

我知道了,是因为$now=$sum+$num;但前面的三元表达式中,$sum=$sum+$num;所以$now算是=$sum+$num+$num;这可能是原因吧,希望对你有用

0 回复 有任何疑惑可以回复我~
#1

sunny184692551 提问者

是这里错了呢,我再想想怎么改
2016-04-04 回复 有任何疑惑可以回复我~

楼主的代码感觉很绕,简单的弄复杂了;而且感觉用到的三元运算在这里不行,rand(1,20)因为是随机的所以总会影响你三元运算的判断,用if和break吧最简单,或者楼上的if...else if...else的写法都是正确的

1 回复 有任何疑惑可以回复我~
<?php
$sum = 12;//小宠物当前的饥饿程度
$now=0;
echo "我饿啦:-(";
echo "<br />";
while($sum<100)
{//小宠物的饥饿程度到100,表示小宠物吃饱啦,不用继续喂了,没吃饱继续喂食
    $num = rand(1,20);//随机数,模拟喂食小宠物的小面包

    $sum =$sum + $num; //小宠物吃小面包
	if($sum<100){
   echo "主人喂了我".$num."%的食物";
    echo ("我还没吃饱呢!"."我已经吃了".$sum."%");
    echo "<br />";  
 
    }else if($sum==100){
		echo "主人喂了我".$num."%的食物吃了".$sum."%";
	}else{
         $sum=$sum-$num;
		 echo "主人喂了我".$num."%的食物";
    echo ("喂太多了,吃不下了,少点吧<br/>"."我已经吃了".$sum."%");
    echo "<br />";  
	}
}
echo "终于吃饱啦^_^";
?>

里面加个循环

1 回复 有任何疑惑可以回复我~
$sum =($sum + $num)<=100?($sum + $num):($sum); //小宠物吃小面包

 echo ($now=($sum + $num)>100?("喂太多了,吃不下了,少点吧<br/>"."我已经吃了".$sum."%"):
         ("我还没吃饱呢!"."我已经吃了".$sum."%"));

这两句调换一下位置我觉得就可以解决了。

0 回复 有任何疑惑可以回复我~

我刚看了下,当你喂了10%,但$sum=24;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

判断是否吃饱为什么这里有bug呢,有时候会出现还没吃饱就判断为吃不下了

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号