这段代码最后的结果是多少? for($i=0,$n=1; $i<10 || $i=7; $i++,$n++){ echo $i % $n == $n ? $i : 0;}这段代码最后的结果是多少呀?为什么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是一个死循环!虽然在语法上检查不出来,但是运行的时候是挺不下来的。原因是这样的 for循环的循环判断表达式是:$i<10 || $i=7,这是一个或的关系,就是说||两边的表达式值只要有一个为真,表达式结果就为真,循环就不会退出。但是,有一个细节一定要说!那就是$i<10 || $i=7在进行||判断时,是先对||前的表达式进行真值判断,如果前面的$i<10为真,那么后面的那个就不再判断了。这就是这个程序为什么是死循环的关键! 分析你的程序,首先i和n分别是0和1,判断:$i<10时为真,所以||后的$i=7就不做了,所以i仍然为0.为了方便观看,我吧跟踪变量后的值写一下,每一个{}表示循环一次后的结果。{$i,$n}echo:{0,1}0{1,2}0{3,4}0{4,5}0{5,6}0{7,8}0{9,10}0{7,11}0--------这里有变化了!因为$i<10为假,所以继续比较$i=7,这是一个赋值语句,返回值为真!(注意:这不是“==”){8,12}0{9,13}0{7,14}0---------因为i》=10了,多以又执行$i=7{8,15}0后面LZ自己就能分析了吧,是个死循环,因为$i=7永远是真值!还有,为什么全显示0呢,因为i是在7-10之间,取模不可能>i,所以,肯定都是0.IE和Chromes在访问这个页面时全部都卡死了,哈哈,以上的数值变量我是从ZS上跟踪下来的,LZ类似这种问题完全可以自己解决了 2年php工作经验在北京找工作 求php数组操作 求一个根据指定值获取数据表数据 php跨表查询问题 求助联级菜单问题!!!急。 curl 竟然抓取不到账号个页面!!!急!!! 有没有人做过计算机三级考试系统? phpmyadmin如何加密? 重写代码,奉送100分 微信图片上传 php正则替换怎样把 href=http://24356>替换成href=http://24356.xxx.com> -> 这个符号在php编程中代表什么呢?
for循环的循环判断表达式是:$i<10 || $i=7,这是一个或的关系,就是说||两边的表达式值只要有一个为真,表达式结果就为真,循环就不会退出。但是,有一个细节一定要说!那就是$i<10 || $i=7在进行||判断时,是先对||前的表达式进行真值判断,如果前面的$i<10为真,那么后面的那个就不再判断了。这就是这个程序为什么是死循环的关键!
分析你的程序,首先i和n分别是0和1,判断:$i<10时为真,所以||后的$i=7就不做了,所以i仍然为0.
为了方便观看,我吧跟踪变量后的值写一下,每一个{}表示循环一次后的结果。
{$i,$n}echo:{0,1}0
{1,2}0
{3,4}0
{4,5}0
{5,6}0
{7,8}0
{9,10}0
{7,11}0--------这里有变化了!因为$i<10为假,所以继续比较$i=7,这是一个赋值语句,返回值为真!(注意:这不是“==”)
{8,12}0
{9,13}0
{7,14}0---------因为i》=10了,多以又执行$i=7
{8,15}0后面LZ自己就能分析了吧,是个死循环,因为$i=7永远是真值!还有,为什么全显示0呢,因为i是在7-10之间,取模不可能>i,所以,肯定都是0.IE和Chromes在访问这个页面时全部都卡死了,哈哈,以上的数值变量我是从ZS上跟踪下来的,LZ类似这种问题完全可以自己解决了