博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java跳出多重循环的方法
阅读量:5134 次
发布时间:2019-06-13

本文共 1874 字,大约阅读时间需要 6 分钟。

 

  我们一般用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;                    }                }            }        }

 

转载于:https://www.cnblogs.com/aland-1415/p/11062364.html

你可能感兴趣的文章
【123】
查看>>
《收获,不止Oracle》pdf
查看>>
用户权限设置
查看>>
java 之equals与"=="的区别
查看>>
LinkedList<E>源码分析
查看>>
学习微软 Excel 2002 VBA 编程和XML,ASP技术
查看>>
游戏开发常用算法
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
深入理解Java:注解(Annotation)基本概念
查看>>
NAT基本原理
查看>>
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>