Java 如何跳出多重嵌套循环体?

1. 在最外层循环语句前定义一个标号,循环体内任意位置都可以使用带有标号的break语句跳出外层循环,结束整个循环。

        System.out.println("MainClass1 Start...");

        ko:
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                System.out.println("i=" + i + ",j=" + j);
                if (j == 5)
                    break ko;
            }
        }

        System.out.println("MainClass1 End.");

运行结果:

MainClass1 Start...
i=0,j=0
i=0,j=1
i=0,j=2
i=0,j=3
i=0,j=4
i=0,j=5
MainClass1 End.

注:标号一定是加在循环体前面,不能放在带标号break语句所在的循环体之后;break+标号有点像goto语句,如果循环体包含的代码片太长,且嵌套多层循环使用了多个标号,会导致代码不易读。

2. 使用boolean变量做flag,作为外层循环体结束的条件,赋予变量带有业务意义的名字。

        System.out.println("MainClass1 Start...");
        int arr[][] = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 9 } };
        boolean found = false;

        for (int i = 0; i < arr.length && !found; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.println("i=" + i + ",j=" + j);
                if (arr[i][j] == 5) {
                    found = true;
                    break;
                }
            }
        }
        System.out.println("MainClass1 End.");

运行结果:

MainClass1 Start...
i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
MainClass1 End.

注:这个办法看起来易读一些,个人感觉比第1个好,如果很多层的嵌套循环,需要在外面每一层都加上这个flag作为结束条件。

当然,我相信还有更好的更实用的办法,你有你牛逼,有就贴出来吧。

时间: 2024-12-21 07:44:59

Java 如何跳出多重嵌套循环体?的相关文章

Java中跳出多重嵌套循环的方法

一.使用标号 1.多重嵌套循环前定义一个标号 2.里层循环的代码中使用带有标号 break 的语句 1 public static void main(String[] args) { 2 ok: 3 for(int i=0;i<15;i++){ 4 for(int j=0;j<15;j++){ 5 System.out.println("i:"+i+",j:"+j); 6 if(j==3){ 7 break ok; 8 } 9 } 10 } 11 }

java如何跳出多重嵌套循环

Java里的break能跳出循环但是只能跳出一个,goto这个在java中也只是被当作关键是,没有任何作用 要做到跳出多重嵌套循环,可以用此方法 在循环体开头设置一个标志位,设置一个标记,然后使用带此标号的break语句跳出多重循环. public class Test1 { public static void main(String[] args) { JUMP://设置一个标记 使用带此标记的break语句跳出多重循环体   for(int i=1;i<100;i++){ for(int

java之跳出多重循环

在java 中 要想跳出多重循环,可以在想要跳出的循环外,加上一个标号,然后跳出此标号,也就是跳出相应的循环.如: 我们希望的是当里面的for循环的b=8时,结束整个循环,但是加上break后只是跳出当前的一层for循环,但是我们又不想结束整个方法,所以不能用return,这个时候可以在想要跳出的循环外,加上一个标号,然后跳出此标号,也就是跳出相应的循环.如: 或者可以在想要跳出循环的时候加上可以跳出外部循环的条件.如:

java outterLoop跳出多重循环用法以及详解

List<CommResultMsg> listresult=new ArrayList<CommResultMsg>(); outterLoop :for (int i = 0; i < model.size()-1; i++) { for (int j = model.size()-1; j > i; j--) { if (model.get(j).getLoaneeApplyId()==model.get(i).getLoaneeApplyId()) { resu

Java中如何跳出多重循环?

在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环.例如, ok: for(int i=0;i<10;i++) { for(int j=0;j<10;j++) { System.out.println(“i=” + i + “,j=” + j); if(j == 5) break ok; } } 另外,不建议使用标号这种方式,而是让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中

java跳出多重循环的两种方法

1在 Java 中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的 break 语句,即可跳出外层循环.例如,ok:for(int i=0;i<10;i++){for(int j=0;j<10;j++){System.out.println( " i= " + i + " ,j= " + j);if(j ==5) break ok;}}2让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维

java跳出多重嵌套循环

public class BreaklFor { public static void main(String args[]){ OK: //设置一个标记 使用带此标记的break语句跳出多重循环体 for(int i=1;i<100;i++){ //让i循环99次 for(int j=1;j<=i;j++){ if(i==10){ break OK ; } System.out.print(i + "*" + j + "=" + i*j) ; Syst

Java面试题总结之如何跳出多重循环

Java中break只能跳出当前循环,要想跳出多重循环可以使label标签: 例: public class StepoverMultiLoop { public static void main(String[] args) { int count = 0; ok: for (int i = 0; i < 100; i++){ for (int j = 0; j < 100; j++){ if ((i + j) == 10){ System. out.println(++count); br

Java跳出多重循环

场景:很多的时候需要做到跳出多重循环,而在Java中虽然后goto关键字,但是是保留字,并没有启用.而在处理分支结构的if...else,switch...case,好像都达不到想要的效果. 作为终止当前代码的return并不能完成业务需求,能用到的只有break,但是break只能跳出当前的循环. 代码示例:break private static void testBreak() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 5;