zoukankan      html  css  js  c++  java
  • Java跳出多重循环的方法

      我们一般用break和cuntinue来控制单个循环,但是如果遇到有多个循环的情况呢,比如下面这个:

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

      如果有以下需求一般怎么做呢?

       (1)当j+k > 5时结束所有循环;

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

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

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

      比如说当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) {    }

    2、 使用条件标识符来控制循环

    比如说当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;
                        }
                    }
                }
            }
        

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

    比如说当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;
                        }
                    }
                }
            }
  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/aland-1415/p/11062364.html
Copyright © 2011-2022 走看看