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

while情况下 运行结果不可能出现6,请反驳我这个论断

<?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。 

正在回答

2 回答

代码问题,“while($num==6);”注意这句末尾的“;”。这说明了这是一句执行,和下面{...}里的不是一个部分。按你上面这样写,至少rand了两次,也就解释了6的出现,6是两次rand相加的结果。正确的“while(条件){...};”是这样,这样是和你说的一样,不会出现6,你可以再仔细看看原文。

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

黑羊sparrow 提问者

分析的透彻,清楚。非常感谢!
2018-01-01 回复 有任何疑惑可以回复我~

分析的透彻,清楚。非常感谢!

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

举报

0/150
提交
取消
PHP入门篇
  • 参与学习       455956    人
  • 解答问题       6306    个

PHP入门教程轻松学习,行业大牛帮您快速掌握PHP编程基础知识。

进入课程

while情况下 运行结果不可能出现6,请反驳我这个论断

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信