1. 在最外层循环语句前定义一个标号,循环体内任意位置都可以使用带有标号的break语句跳出外层循环,结束整个循环。

        System.out.println("MainClass1 Start...");

        ko:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println("i=" + i + ",j=" + j);
if (j == 5)
break ko;
}
} System.out.println("MainClass1 End.");

运行结果:

MainClass1 Start...
i=0,j=0
i=0,j=1
i=0,j=2
i=0,j=3
i=0,j=4
i=0,j=5
MainClass1 End.

注:标号一定是加在循环体前面,不能放在带标号break语句所在的循环体之后;break+标号有点像goto语句,如果循环体包含的代码片太长,且嵌套多层循环使用了多个标号,会导致代码不易读。

2. 使用boolean变量做flag,作为外层循环体结束的条件,赋予变量带有业务意义的名字。

        System.out.println("MainClass1 Start...");
int arr[][] = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 9 } };
boolean found = false; for (int i = 0; i < arr.length && !found; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println("i=" + i + ",j=" + j);
if (arr[i][j] == 5) {
found = true;
break;
}
}
}
System.out.println("MainClass1 End.");

运行结果:

MainClass1 Start...
i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
MainClass1 End.

注:这个办法看起来易读一些,个人感觉比第1个好,如果很多层的嵌套循环,需要在外面每一层都加上这个flag作为结束条件。

当然,我相信还有更好的更实用的办法,你有你牛逼,有就贴出来吧。

Java 如何跳出多重嵌套循环体?的更多相关文章

  1. Java中跳出多重嵌套循环的方法

    一.使用标号 1.多重嵌套循环前定义一个标号 2.里层循环的代码中使用带有标号 break 的语句 public static void main(String[] args) { ok: for(i ...

  2. java如何跳出多重嵌套循环

    Java里的break能跳出循环但是只能跳出一个,goto这个在java中也只是被当作关键是,没有任何作用 要做到跳出多重嵌套循环,可以用此方法 在循环体开头设置一个标志位,设置一个标记,然后使用带此 ...

  3. Java之跳出多重循环

    在java里,想要跳出多重循环,有两种方法 1.在循环语句前设置一个标记,然后使用带有该标记的break语句跳出该循环 public static void main(String args[]) { ...

  4. 关于Java 中跳出多重循环

    前言 环境:window10 JDK 1.8 应用场景:在多个for循环或while循环中,直接跳到最外层的循环外面,而不是需要层层退出来. 使用: 使用一个标签label(也可以是其他单词,不能是关 ...

  5. java outterLoop跳出多重循环用法以及详解

    List<CommResultMsg> listresult=new ArrayList<CommResultMsg>(); outterLoop :for (int i = ...

  6. java中如何使用break跳出多重循环

    java 中已知的三种跳出多重循环的方式: System.out.println("---------java中跳出多重循环的三种方式:---------"); System.ou ...

  7. Java如何跳出当前的多重嵌套循环?

    在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环.例如, outer: for(int i=0;i<1 ...

  8. java跳出多重嵌套循环

    public class BreaklFor { public static void main(String args[]){ OK: //设置一个标记 使用带此标记的break语句跳出多重循环体 ...

  9. 如何在java中跳出当前多重嵌套循环?有几种方法?

    如何在java中跳出当前多重嵌套循环?有几种方法? - 两种方法   - 1.在外层循环定义标记          ok:          for(int i=0;i<100;i++){    ...

随机推荐

  1. centos 7 + mono + jexus 环境安装

    1.安装 mlocate yum list|grep locate yum install mlocate.x86_64 updatedb 2.安装 yum-utils yum list|grep y ...

  2. 【HEVC】4、HM-16.7编码一个CU(帧内部分) 3.帧内预测各种模式实现

    HEVC中一共定义了35中帧内编码预测模式,编号分别以0-34定义.其中模式0定义为平面模式(INTRA_PLANAR),模式1定义为均值模式(INTRA_DC),模式2~34定义为角度预测模式(IN ...

  3. linux基础1——网络配置入门

    1.IP地址配置 (1)临时IP更改 sudo ifconfig eth0 down    暂停接口 sudo ifconfig eth0 192.168.1.xx sudo ifconfig eth ...

  4. JAVA数据压缩简单测试

    本段代码只是做了简单的测试,看是否可行,此处仅作笔记.适应用场合,比如数据库,数据缓存.压缩解压肯定是有资源消耗的! 当数据小于500byte时就没有压缩的必要了 @Test public void ...

  5. strcpy和memcpy的区别(转载)

    strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...

  6. 表中排序ID断开重排

    客户需要排序ID和页面的问题序号一致,以前删除过一些问题导致order_id 中间有些断开的. 业务表 T_QUESTION order_id question_id  custom_id --1.创 ...

  7. 永久修改 CMD 的 PROMPT 显示结果/给cmd命令显示加上运行时间

    1.环境 windows10 系统 2.打开 cmd ,快捷键 Ctrl + x 然后a 3.输入 REG ADD "HKLM\SYSTEM\CurrentControlSet\Contro ...

  8. WKWebView _WebFilterIsActive returning: NO

    写这篇文是因为在UIWebView加载页面的时候有时候会返回: filterBlacklist = ( ); filterWhitelist = ( ); restrictWeb = 1; useCo ...

  9. ArcSDE安装步骤及问题

    ArcSDE安装步骤及问题 自己在安装ArcSDE的时候遇到了一些问题,现在将详细的安装过程和遇到的问题记在这里,以备以后使用. 1. 安装Oracle: 2. 安装ArcSdeOracle10g: ...

  10. python切片操作

    序列类型是其元素被顺序放置的一种数据结构类型,这种方式允许通过下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素.这种访问序列的方式叫做切片.字符串也可以使用切片操作.切片操作符 ...