黑马程序员技术交流社区

标题: 看不懂啊 啥标号的 [打印本页]

作者: 胡焱老师    时间: 2014-1-20 20:11
标题: 看不懂啊 啥标号的

今天看了别人的笔记 这里看不懂!
for循环标号
        for(int x=0;x<3;x++){
                for(int y=0;y<2;y++){
                    //不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环    这个标号 啥意思???
                    if(x==1)break;
                    //带标号跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断, 这个标号 啥意思?
                    //已决定是否执行该循环体
                    if(x==2&&y==1)break z;
                }
            }
作者: 花生壳    时间: 2014-1-20 20:25
break:不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环代标号的:跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断,已决定是否执行该循环体
标号就是你标记要跳的位置。
作者: kkopopo    时间: 2014-1-20 20:30
本帖最后由 kkopopo 于 2014-1-20 20:32 编辑

感觉你的代码粘贴不完全!  还有不要在原代码上直接问问题! 这是嵌循环里面的带标号的break语句。具体用法为:break 和continue都可以有一个可选择的标号,它用来告诉Java从哪里开始继续执行程序。没有标号的时候,break在嵌套循环中会跳出最近的循环,进入到包含这层循环的外层循环中,或者在单层循环中跳到循环外的下一条语句上。而continue重新进行它所在层次的循环。使用带标号的break 和continue后,你可以用break进入到嵌套循环外的某个位置,或用continue来进入当前循环的外层循环中。  要使用标号的循环,在循环的开始部分前面加标号,在标号和循环之间带有一个冒号。然后当你使用break 或continue时,在它们后面加上标号的名字。 下面是个列子: out:   for (int I=0;I<10;I++)   {
                                         while (x<50)   {
                                              if (I*x++>400)                             
                                                             break out;                 
                                              //inner loop here            
                                          }               
                                        //outer loop here     
                           }

作者: 宋星    时间: 2014-1-20 22:04
说简单点,没有标号,break就直接跳出他所在的循环,有标号,就跳出标号指定的循环
例:
     w : for(int x=0;x<3;x++)        //w就是标号
                {
                        for(int y=0;y<4;y++)       
                        {
                                System.out.println("x="+x);
                                break w;        //因为是break w,所以跳到w所在的循环,即外循环。如果是break,                            则是跳到break所在的循环,即内循环。
                        }
                }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2