亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

判斷是否吃飽為什么這里有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
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號