java 中已知的三种跳出多重循环的方式:

  1. System.out.println("---------java中跳出多重循环的三种方式:---------");
  2. System.out.println("---------第一种,使用带有标号的的break语句---------");
  3. String a1 = "";
  4. String b1 = "";
  5. here:
  6. for (int i = 1; i <= 4; i++) {
  7. a1 = "外层循环第"+i+"层";
  8. for (int j = 1; j <= 4; j++) {
  9. b1 = "内层循环第"+j+"层";
  10. if (2 == j & 2 == i) {
  11. break here;
  12. }
  13. }
  14. }
  15. System.out.println(a1+b1);
  16. System.out.println("---------第二种,外层的循环条件收到内层的代码控制限制---------");
  17. String a2 = "";
  18. String b2 = "";
  19. Boolean state =  true;
  20. for (int i = 1; i <= 4 && state; i++) {
  21. a2 = "外层循环第"+i+"层";
  22. for (int j = 1; j <= 4 && state; j++) {
  23. b2 = "内层循环第"+j+"层";
  24. if (2 == j & 2 == i) {
  25. state = false;
  26. }
  27. }
  28. }
  29. System.out.println(a2+b2);
  30. System.out.println("---------第三种,使用try/catch强制跳出循环---------");
  31. String a3 = "";
  32. String b3 = "";
  33. try {
  34. for (int i = 1; i <= 3; i++) {
  35. a3 = "外层循环第"+i+"层";
  36. for (int j = 1; j <= 3; j++) {
  37. b3 = "内层循环第"+j+"层";
  38. if (2 == j & 2 == i) {
  39. throw new Exception();
  40. }
  41. }
  42. }
  43. } catch (Exception e) {
  44. System.out.println(a3+b3);
  45. }
  46. System.out.println("---------java中跳出多重循环的两种方式---------");

最后输出结果如下:

总结: 其实在工作中用到的最多的也最可行的是使用第一种方式:在java中,break作为”goto“使用,说明:break语句除了在switch语句和循环中使用之外,它还能作为goto 语句的一种“文明”形式来使用。Java 中没有 goto 语句,因为goto 语句提供了一种改变程序运行流程的非结构化方式。这通常使程序难以理解和难于维护。它也阻止了某些编译器的优化。但是,有些地方goto 语句对于构造流程控制是有用的而且是合法的。例如,从嵌套很深的循环中退出时, goto 语句就很有帮助。因此,Java 定义了break 语句的一种扩展形式来处理这种情况。通过使用这种形式的break,你可以终止一个或者几个代码块。这些代码块不必是一个循环或一个switch语句的一部分,它们可以是任何的块。而且,由于这种形式的break 语句带有标签,你可以明确指定执行从何处重新开始。你将看到,break带给你的是goto 的益处,并舍弃了goto 语句带来的麻烦(引用);

需要注意的是:Java中的标签就是一个紧跟着“:”的标识符。与其他语言不通,Java语言的标签必须放在循环前面才有作用。就不要想着能像传送门有一样随心所欲的跳了

java中如何使用break跳出多重循环的更多相关文章

  1. break跳出多重循环

    大家都知道break只能跳出当前的一个循环语句,如果碰到要跳出多个循环体,那么我们就该在循环体开头设置一个标志位,然后使用带此标志位的break语句跳出多重循环 jump: ;i<;i++){ ...

  2. JavaScript break跳出多重循环

    多重循环在编程中会经常遇到,那么在JavaScript中如何指定跳出那层的循环呢.其实这也是break的一个用法,下面是一个不错的例子,来自<JavaScript权威指南>,可以参考下: ...

  3. javascript: break跳出多重循环以及退出each循环

    先来看一个小例子: <html> <body> <script type="text/javascript"> for(j=0;j<2;j ...

  4. Java之跳出多重循环

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

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

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

  6. C/C++——C语言跳出多重循环方法

    c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...

  7. java中 label 配合 break continue 使用方法

    转 https://www.jianshu.com/p/7954b61bc6ee java中 label 配合 break continue 使用的其实是比较少的. 这种做法在业务代码中比较少见. 在 ...

  8. Python 如何跳出多重循环

    Python 如何跳出多重循环 抛异常 return

  9. JS 跳出多重循环

    今天学到了如何跳出多重循环

随机推荐

  1. ----Androd 系统开机显示白条提示 “there is internal problem with your device, Contact your manufacture ... ”

    ref: https://www.theandroidsoul.com/how-to-fix-theres-an-internal-problem-with-your-device-error-on- ...

  2. std::condition_variable::wait_until segment

    原因是使用了 -static 改为 -static-libstdc++ -static-libgcc

  3. NABCD-课程表开发

    N:需求 1.学生录入课程需求. 2.学生对于空教室使用需求(自习或活动占用). 3.学生对于具体课程的查询需求. A:做法 基于安卓课程查询,录入系统. B:好处 1.满足课程表的基本需求 2.便于 ...

  4. heat-engine组件

    1.heat-engine启动一个rpc server端,EngineService在初始化时加载heat.clients插件和初始化env, env中包括各种资源关键字对应的映射类和constrai ...

  5. ucos中的中断管理

    一.中断的概念 中断是一种硬件机制,用于处理异步事件.中断的实时性比轮询要好,通过中断,微控制器可以在异常发生的时候立刻进行处理,而不需要不断轮询事件是否发生. CM3支持中断嵌套,使得高优先级异常可 ...

  6. GCC后端移植杂记

    为GCC后端移植新的处理器架构的确是一件非常痛苦的事情. 拿到GCC源码时,发现它的规模比预想中庞大得多,但好在体系结构十分清晰,前端后端高度解耦.解耦的关键就在于内部的RTL中间代码(表达形式类似于 ...

  7. c# webBrowser 转图片

    class NativeMethods { [ComImport] [Guid("0000010D-0000-0000-C000-000000000046")] [Interfac ...

  8. linux学习笔记:linux常用的命令

    2018-11-19                                      常见命令快速查询一览表 命令 功能 ls 列出目录内容 cat 链接文件并打印到标准输出设备上(通常用来 ...

  9. hbase基础建表语句

    在Hadoop目录下的HBASE下执行命令 ./hbase shell 进入hbase环境 创建hbase 数据库表 create "表名", "字段A",&q ...

  10. 重启虚拟机后dhclient进程未运行解决办法

    问题分析 重启虚拟机后,dhclient进程未运行的根因通常为: 1.NetworkManager未开启自启动导致的dhclient进程未运行 2.网卡设置未纳入NetworkManager管理导致的 ...