sunny184692551
2016-04-01 02:36
<?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 "终于吃饱啦^_^";
?>
我知道了,是因为$now=$sum+$num;但前面的三元表达式中,$sum=$sum+$num;所以$now算是=$sum+$num+$num;这可能是原因吧,希望对你有用
楼主的代码感觉很绕,简单的弄复杂了;而且感觉用到的三元运算在这里不行,rand(1,20)因为是随机的所以总会影响你三元运算的判断,用if和break吧最简单,或者楼上的if...else if...else的写法都是正确的
<?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 "终于吃饱啦^_^"; ?>
里面加个循环
$sum =($sum + $num)<=100?($sum + $num):($sum); //小宠物吃小面包
和
echo ($now=($sum + $num)>100?("喂太多了,吃不下了,少点吧<br/>"."我已经吃了".$sum."%"): ("我还没吃饱呢!"."我已经吃了".$sum."%"));
这两句调换一下位置我觉得就可以解决了。
我刚看了下,当你喂了10%,但$sum=24;
PHP入门篇
456325 学习 · 6558 问题
相似问题