这段代码不明白

这段代码不明白

for($i=0;$i<3;$i++){

$j=1;

for(;$j<2;$j++){


}

if($j==2&&$i==1){

break;

}

echo '$j='.$j;

echo '$i='.$i;

}

他们的执行顺序是外层for完后内层for之后if吗?为什么$i=0?它是怎么一个顺序呢?$i=0的话不满足&&不是不能终止吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你好,执行顺序为:
1、先进行外层for循环,此时$i=0;然后进行内层for循环。此时$j=1;然后进行if判断, 此时$j=1,$i=0,不满足if判断,则输出$i,$j后继续循环
2、继续进行外层for循环,由于输出的$i是在外循环for内部,则$i经过循环再重新赋制还是0.$j 则经过内部for循环后变为2,当$j=2时不满足内层循环条件则终止循环,所以输出结果为 $j=2$i=0

当改为如下代码时:输出放在for循环外面

for($i=0;$i<3;$i++){
    $j=1;
    for(;$j<2;$j++){
    }
    if($j==2&&$i==1){
        break;
    }
}
echo '$j='.$j;
echo '$i='.$i;


执行顺序为:
1、先进行外层for循环,此时$i=0;然后进行内层for循环。此时$j=1;然后进行if判断, 此时$j=1,$i=0,不满足if判断则输出$i=1,$j=2后继续循环,
2、继续循环后进入if判断,满足$j==2&&$i==1则终止循环,所以输出结果还是为第一次循环的值$j=2$i=1;

如果解决您的问题请采纳,祝学习愉快!

  • 神知 提问者 #1
    意思是$i在最外面不管循环多少次输出都为0?里面的内容并不能让它改变数值?它不参与里面的计算?
    2018-11-23 17:52:15
  • guly 回复 提问者 神知 #2
    意思是在循环里面输出$i的值循环后都为零,如果for循环外面输出时循环一从改变一次,知道满足if条件终止循环,祝学习愉快!
    2018-11-23 18:34:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师