while情況下 運(yùn)行結(jié)果不可能出現(xiàn)6,請(qǐng)反駁我這個(gè)論斷
<?php
? ? //while例子
$sum? = 0;?
$num = rand(1,6); //獲取1至6的隨機(jī)數(shù),模擬擲骰子
$sum = $sum? + $num;//前進(jìn)步長(zhǎng)
while($num==6);
{?
$num = rand(1,6);//獲取1至6的隨機(jī)數(shù),模擬擲骰子
$sum = $sum? + $num;//前進(jìn)步長(zhǎng)
};
echo "while例子執(zhí)行完畢,前進(jìn):".$sum ."<br />";
多次點(diǎn)擊時(shí),結(jié)果會(huì)出現(xiàn)“while例子執(zhí)行完畢,前進(jìn):6”。
想不明白, 這段代碼怎么可能會(huì)出現(xiàn)前進(jìn)6呢?
1、第一步:當(dāng)$num 隨機(jī)出現(xiàn)6時(shí),$sum的值為6+0=6,然后執(zhí)行while 括弧代碼。
2、第二步:執(zhí)行括弧代碼時(shí),$num 可能隨機(jī)出現(xiàn)1--6的任意數(shù)字,然后$sum=6+$num(隨機(jī)出現(xiàn)的數(shù)字),最終$sum的結(jié)果肯定是 大于6的,即最小是$sum=6+1=7。?
2018-01-01
代碼問題,“while($num==6);”注意這句末尾的“;”。這說明了這是一句執(zhí)行,和下面{...}里的不是一個(gè)部分。按你上面這樣寫,至少rand了兩次,也就解釋了6的出現(xiàn),6是兩次rand相加的結(jié)果。正確的“while(條件){...};”是這樣,這樣是和你說的一樣,不會(huì)出現(xiàn)6,你可以再仔細(xì)看看原文。
2018-01-04
分析的透徹,清楚。非常感謝!