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;
                    }
                }
            }
        }
相關文章
相關標籤/搜索