Java跳出多重循环的方法

 

  咱们通常用break和cuntinue来控制单个循环,可是若是遇到有多个循环的状况呢,好比下面这个:oop

for (int i=0; i<10; i++) {
            for (int j=0; j<10; j++) {
                for (int k=0; k<10; k++) {
                    
                  }
            }
        }

  若是有如下需求通常怎么作呢?spa

   (1)当j+k > 5时结束全部循环;code

  (2)当j+k > 5时结束最里两层循环;blog

  (3)当j+k > 5时结束最里一层循环,跳过当前第二层循环,但继续执行剩下的第二层循环;io

 

 

 

一、 抛异常来跳出整个循环;class

  好比说当j+k > 5时结束全部循环可以使用此法:循环

try{
            for (int i=0; i<10; i++) {
                for (int j=0; j<10; j++) {
                    for (int k=0; k<10; k++) {
                        if (j + k > 5){
                            throw new Exception();
                        }
                    }
                }
            }
        }
catch (Exception e) {    }

 

二、 使用条件标识符来控制循环方法

好比说当j+k > 5时结束最里两层循环,第一种方法就没法作到了,可以使用此法:异常

        boolean firstLoop = true;
        boolean secondLoop = true;
        boolean thirdLoop = true;
        
        for (int i=0; i<10; i++) {
            if (!firstLoop){
                break;
            }
            
            for (int j=0; j<10; j++) {
                if (!secondLoop){
                    break;
                }
                
                for (int k=0; k<10; k++) {
                    if (!thirdLoop){
                        break;
                    }
                    if (j + k > 5){
                        thirdLoop = false;
                        secondLoop = false;
                    }
                }
            }
        }
    

 

三、 给循环添加标记,来更精准的控制循环di

好比说当j+k > 5时结束最里一层循环,跳过当前第二层循环,但继续执行剩下的第二层循环;这个使用第二种方法也能实现,只是代码可能就会看起来更加的复杂;使用第三种方法就能让这个变得简单明了,代码以下(secondLoop就是一个标记):

for (int i=0; i<10; i++) {
            secondLoop:
            for (int j=0; j<10; j++) {
                for (int k=0; k<10; k++) {
                    if (j + k > 5){
                        continue secondLoop;
                    }
                }
            }
        }
相关文章
相关标签/搜索