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) 的条件 循环结束 在推出循环 展开
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) 的条件 循环结束 在推出循环 展开
展开全部
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;
}
}
?>
展开全部
从头顺吧.
第一个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的值了。
第一个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的值了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
break只会跳出包含他的循环,包含这个循环的循环是不会理会的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实楼上说那么多就是要告诉你,第二个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的第一遍循环停止了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,看的我乱乱的,没明白你的意思,break是跳出本次循环!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询