黑马程序员技术交流社区

标题: 在JAVA中多重嵌套循环问题 [打印本页]

作者: 李鑫    时间: 2012-5-27 07:39
标题: 在JAVA中多重嵌套循环问题
多重嵌套循环,总是循环出错,在JAVA中如何跳出当前的多重嵌套循环,请举个例说明一下
作者: 丰亚彬    时间: 2012-5-27 07:56
使用最多的是break语句,一个break跳出一层循环,给你举个例子吧,就是那个99口诀表吧
为了给你把效果演示出来我把循环条件给改了:
class Demo
{
        public static void main(String[] args)
        {
                for(int x=1;x<100;x++)
                {
                        if(x>9)
                                break;    //跳出外层循环,程序结束

                        for(int y=1;y<100;y++)
                        {
                                if(y>9 || y>x)
                                        break;   //跳出里面的循环
                                System.out.print(y+"*"+x+"="+x*y+'\t');
                        }
                        System.out.println();
                }
        }
}

作者: 张亭    时间: 2012-5-27 08:40
用break/continue 加标号的方式,可跳出指定的循环
例如:
class Duocen {
        public static void main(String[] args) {
                A:for(int i=0;i<5;++i) {
                        for(int j=0;j<5;++j){
                                if(i==3)
                                        break A;//当条件满足时,直接跳出外层for循环
                                System.out.println("i="+i+",j="+j);
                        }
                }
        System.out.println("over");
        }
}

作者: 武剑峰    时间: 2012-5-27 09:07
本帖最后由 武剑峰 于 2012-5-27 09:11 编辑

本人在二、三楼的break/continue 基础上再补充一点,也可以利用return跳出所有的嵌套循环,但注意一点return之后就是一切都结束了。例如:
class jumploop {
        public static void main(String[] args) {
                for (int i = 0; i < 5; ++i) {
                        for (int j = 0; j < 5; ++j) {
                                if (j == 2) {
                                        System.out.println("j==2成立跳出本次循环");
                                        continue;
                                } else if (j == 4) {
                                        System.out.println("j==4成立跳出内层循环");
                                        break;// break 也可以跳出来指定的页标签循环处 "x:",break x;
                                }
                                if (i == 3) {
                                        System.out.println("i==3成立跳出所有的嵌套循环");
                                        return;
                                }
                                System.out.println("i=" + i + ",j=" + j);
                        }
                }
                System.out.println("over");  //此处不会执行——————————!!!注意
        }
}

作者: 黄克帅    时间: 2012-5-27 13:30
本帖最后由 黄克帅 于 2012-5-27 13:35 编辑

return;  结束程序   break  结束当前循环   continue 结束本次循环  继续下次循环。

public class Test {

        public static void main(String[] args) {
                A: for (int i = 0; i < 5; i++) {

                        if (i == 3) {
                                return;   // 条件满足 ,结束整个程序,后面的代码都不执行
                        }

                        System.out.println(i);

                        B: for (int j = 6; j < 10; j++) {

                                if (i % 3 == 0) {
                                        break;        //满足条件就结束整个B循环,跳到A循环继续执行,i++,
                                }

                                System.out.println(j);

                                C: for (int k = 11; k < 15; k++) {

                                        if (k % 2 == 0) {
                                                continue;//满足条件结束本次C循环,继续k++,继续执行下次C循环,若K<15不成立后,C循环结束,跳到外层B循环,j++
                                        }

                                        System.out.println(k);

                                }
                        }

                }

               
        }

}




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