Java跳出多重循环的方法

素颜马尾好姑娘i 2021-12-10 00:13 442阅读 0赞

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

  1. for (int i=0; i<10; i++) {
  2. for (int j=0; j<10; j++) {
  3. for (int k=0; k<10; k++) {
  4. }
  5. }
  6. }

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

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

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

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

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

  比如说当j+k > 5时结束所有循环可使用此法:

  1. try{
  2. for (int i=0; i<10; i++) {
  3. for (int j=0; j<10; j++) {
  4. for (int k=0; k<10; k++) {
  5. if (j + k > 5){
  6. throw new Exception();
  7. }
  8. }
  9. }
  10. }
  11. }
  12. catch (Exception e) { }

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

比如说当j+k > 5时结束最里两层循环,第一种方法就无法做到了,可使用此法:

  1. boolean firstLoop = true;
  2. boolean secondLoop = true;
  3. boolean thirdLoop = true;
  4. for (int i=0; i<10; i++) {
  5. if (!firstLoop){
  6. break;
  7. }
  8. for (int j=0; j<10; j++) {
  9. if (!secondLoop){
  10. break;
  11. }
  12. for (int k=0; k<10; k++) {
  13. if (!thirdLoop){
  14. break;
  15. }
  16. if (j + k > 5){
  17. thirdLoop = false;
  18. secondLoop = false;
  19. }
  20. }
  21. }
  22. }

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

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

  1. for (int i=0; i<10; i++) {
  2. secondLoop:
  3. for (int j=0; j<10; j++) {
  4. for (int k=0; k<10; k++) {
  5. if (j + k > 5){
  6. continue secondLoop;
  7. }
  8. }
  9. }
  10. }

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

发表评论

表情:
评论列表 (有 0 条评论,442人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java 如何多重循环

    跳出多重循环有两种方法 (一)可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环 例: out:for(

    相关 java多重嵌套循环

    在java里面,我们知道有goto这个关键字,但是实际却没有啥作用,这就让我们不像在c/c++里面能够随便让程序跳到那去执行,而break只能跳出当前的一个循环语句,如果要跳出