<?php
//while例子
$sum = 0;
$num = rand(1,6); //获取1至6的随机数,模拟掷骰子
$sum = $sum + $num;//前进步长
while($num==6);
{
$num = rand(1,6);//获取1至6的随机数,模拟掷骰子
$sum = $sum + $num;//前进步长
};
echo "while例子执行完毕,前进:".$sum ."<br />";
多次点击时,结果会出现“while例子执行完毕,前进:6”。
想不明白, 这段代码怎么可能会出现前进6呢?
1、第一步:当$num 随机出现6时,$sum的值为6+0=6,然后执行while 括弧代码。
2、第二步:执行括弧代码时,$num 可能随机出现1--6的任意数字,然后$sum=6+$num(随机出现的数字),最终$sum的结果肯定是 大于6的,即最小是$sum=6+1=7。
代码问题,“while($num==6);”注意这句末尾的“;”。这说明了这是一句执行,和下面{...}里的不是一个部分。按你上面这样写,至少rand了两次,也就解释了6的出现,6是两次rand相加的结果。正确的“while(条件){...};”是这样,这样是和你说的一样,不会出现6,你可以再仔细看看原文。
分析的透彻,清楚。非常感谢!