php break 退出循环到底是怎么用的

<?phpwhile($i++<10){echo'$i='.$i;while($j++<5){if($j==2){break2;}echo'$j='.$j;}echo"<... <?php
while($i++<10){
echo'$i='.$i;
while($j++<5){
if($j==2){
break 2;
}
echo' $j='.$j;
}
echo"<br />";
}
?>
输出 $i=1 $j=1

我快疯了大家帮帮我分析一下 上面代码是对的 我就是迷惑 就是说在执行第一个while的时候 $i第一次循环是1小于10好 执行输出$i=1 到了第二个while的时候$j是小于5 也执行$J=1 if(==2)不成立显示$J=1 可是到第二次在循环的时候 不是先执行第一个while的语句输出的 $i=2吗 然后再执行第二个while if等于2 就退出循环了 然后连第一个 while也退出了 break 2; 可是我就想不明白 执行第一次的时候 都能成立 都显示出了
$i=1 $j=1 可是在返回执行第一个 while的 时候 $i=2的 该显示出来的 然后再执行 第二个while 就是成立 if语句 退出循环 然后再 执行 break 2 的 到底是怎么处理 第二个里while的 break 2的 请求高手 救救我吧 我要一个 详细的明了的说明
难道 是先把第一遍从上到下先执行一边 在执行的时候 直接第二个的while里的 if($j==2) 的条件 循环结束 在推出循环
展开
 我来答
枯草木
推荐于2017-09-13 · 超过20用户采纳过TA的回答
知道答主
回答量:92
采纳率:100%
帮助的人:27.6万
展开全部

break


(PHP 4, PHP 5)


 break 结束当前
 for,foreach,while,do-while
 或者 switch 结构的执行。


 break 可以接受一个可选的数字参数来决定跳出几重循环。


 

 

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list (, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}
/* 使用可选参数 */
$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* 只退出 switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* 退出 switch 和 while 循环 */
    default:
        break;
    }
}
?>
百度网友a3151a3c8
2012-11-20 · TA获得超过419个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:114万
展开全部
从头顺吧.
第一个while $i=0 < 10 自加1后输出$i=1
第二个while $j=0 < 5 自加1后 不满足 $j ==2 (此时$j=1)向下走,打印出$j=1
回到第两层while $j自加1的循环,while $j=1 < 5 ,$j自加1后,此时已满足$j==2条件,break 跳出循环,break 2 是指跳出两层循环,直接退出了。

$j++ 与 ++$j的区别,要搞清。($j++) 在括号里时是$j的值,出了括号范围就已经是自加1的值了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yaosniper
2012-11-20 · TA获得超过116个赞
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:75.7万
展开全部
break只会跳出包含他的循环,包含这个循环的循环是不会理会的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tinasi
2012-11-20 · TA获得超过295个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:251万
展开全部
其实楼上说那么多就是要告诉你,第二个while循环完了才会走第一个while的第二遍,而你在第二个while的第二次循环就已经退出了,所以第一个while没走第二遍,所以不会有$i=2
更多追问追答
追问
是不是 第一遍会走第一个while然后再走第二个while  而break 2是在第二个while的里面 走过第一遍的 两个while 都不满足条件 而第二遍 直接走第二个while 因为break 2 在第二个while里面 是不是直到满足if语句然后再往下 走到break 2 因为满足了if语句 就利break 2 跳出两重循环  第二个while是个一层循环 第一个while也是一层循环 先跳出第二个的while的一个循环 然后在跳出第一个的while循环就是两个循环 是不是这个原理
追答
其实你只是没理解循环,假设你没有if($j==2){ break 2; }这个那么,第一个while的第一遍里第二个while会循环5遍,然后第一个while第二次循环的时候,第二个while还要再走5遍,而你加上break 2后,在第一个while第一次循环的时候,就全部跳出了,你可以把break理解成停止它所在的while,break 2就是先停止它所在的while,再停止它所在while更外面一层的while,break几就是停止几个while。
所以,你的break 2就是在第二个while的第二遍循环,第一个while的第一遍循环停止了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bbb6cc7
2012-11-20
知道答主
回答量:12
采纳率:0%
帮助的人:1.8万
展开全部
亲,看的我乱乱的,没明白你的意思,break是跳出本次循环!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式