• JAVA如何跳出多层循环


    1. break、continue、return 的区别:

    break默认是跳出最里层的循环,也就是break所在的最近的那层循环

    continue是终止本次循环,继续下次循环

    return 结束当前方法

    3层循环的简单测试:

     1 for (int i = 0; i < 3; i++) {
     2             for1:
     3             for (int j = 0; j <3; j++) {
     4                 for2:
     5                     for (int m = 0; m < 3; m++) {
     6                         for3:
     7                             System.out.println(i+"--"+j+"--"+m);
     8                     }
     9             }
    10         }
     1 0--0--0
     2 0--0--1
     3 0--0--2
     4 0--1--0
     5 0--1--1
     6 0--1--2
     7 0--2--0
     8 0--2--1
     9 0--2--2
    10 1--0--0
    11 1--0--1
    12 1--0--2
    13 1--1--0
    14 1--1--1
    15 1--1--2
    16 1--2--0
    17 1--2--1
    18 1--2--2
    19 2--0--0
    20 2--0--1
    21 2--0--2
    22 2--1--0
    23 2--1--1
    24 2--1--2
    25 2--2--0
    26 2--2--1
    27 2--2--2

    简单测试break:

     1 for (int i = 0; i < 3; i++) {
     2             for1:
     3             for (int j = 0; j <3; j++) {
     4                 for2:
     5                     for (int m = 0; m < 3; m++) {
     6                         for3:
     7                             if (m == 1) {
     8                                 break;
     9                             }
    10                             System.out.println(i+"--"+j+"--"+m);
    11                     }
    12             }
    13         }
    1 0--0--0
    2 0--1--0
    3 0--2--0
    4 1--0--0
    5 1--1--0
    6 1--2--0
    7 2--0--0
    8 2--1--0
    9 2--2--0

    简单测试continue:

     1 for (int i = 0; i < 3; i++) {
     2             for1:
     3             for (int j = 0; j <3; j++) {
     4                 for2:
     5                     for (int m = 0; m < 3; m++) {
     6                         for3:
     7                             if (m == 1) {
     8                                 continue;
     9                             }
    10                             System.out.println(i+"--"+j+"--"+m);
    11                     }
    12             }
    13         }
     1 0--0--0
     2 0--0--2
     3 0--1--0
     4 0--1--2
     5 0--2--0
     6 0--2--2
     7 1--0--0
     8 1--0--2
     9 1--1--0
    10 1--1--2
    11 1--2--0
    12 1--2--2
    13 2--0--0
    14 2--0--2
    15 2--1--0
    16 2--1--2
    17 2--2--0
    18 2--2--2

    简单测试return:

     1 for (int i = 0; i < 3; i++) {
     2             for1:
     3             for (int j = 0; j <3; j++) {
     4                 for2:
     5                     for (int m = 0; m < 3; m++) {
     6                         for3:
     7                             if (m == 1) {
     8                                 return;
     9                             }
    10                             System.out.println(i+"--"+j+"--"+m);
    11                     }
    12             }
    13         }
    1 0--0--0

    2. 如何跳出多层循环

    思路:对每一层设置标志位,设置方法---变量名:

    注意这里的冒号至关重要

    简单测试:

     1 for (int i = 0; i < 3; i++) {
     2             for1:
     3             for (int j = 0; j <3; j++) {
     4                 for2:
     5                     for (int m = 0; m < 3; m++) {
     6                         for3:
     7                             if (m == 1) {
     8                                 break for2;
     9                             }
    10                             System.out.println(i+"--"+j+"--"+m);
    11                     }
    12             }
    13         }
    1 0--0--0
    2 0--1--0
    3 0--2--0
    4 1--0--0
    5 1--1--0
    6 1--2--0
    7 2--0--0
    8 2--1--0
    9 2--2--0


     

  • 相关阅读:
    关于加密程序
    C++11的新特性lambda的小试牛刀RAII
    自动生成makefile的脚本
    关于pcre正则表达式库libpcre
    利用PHP执行SQL文件,将SQL文件导入到数据库
    Linux 系统是否适合于您?
    一个少年电脑病毒作者的独白
    PHP编程效率的20个要点
    JVM源码分析之javaagent原理完全解读
    如何更好的利用Node.js的性能极限
  • 原文地址:https://www.cnblogs.com/happy520/p/9400984.html
Copyright © 2020-2023  润新知