设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 5423|回复: 0
打印 上一主题 下一主题

Java实现跳出多层循环

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2013-1-17 13:47:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在java中,使用break可以跳出循环,默认情况下是跳出最里层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 循环标签 :即是对某个循环定义一个名字,然后在 break 后面加上这个名字,当符合 break 条件时,程序就会跳到规定的循环那。这个有点像我们编写PL/SQL程序。下面来一个例子吧,说明下这个问题。

  1. public class Break {
  2.          //演示默认情况下的break跳出循环,是最里层循环。
  3.         public static void cycle1(){
  4.                 for (int i = 0; i < 5; i++) {
  5.                         System.out.println("I 的值是:"+i);
  6.                         for (int j = 0; j < 4; j++) {
  7.                                 System.out.println("J 的值是:"+j);
  8.                                 for (int m = 0; m < 3; m++) {
  9.                                         if(m==2){
  10.                                                 System.out.println("M 的值是:"+m+" 跳出最里层循环");
  11.                                                 break;
  12.                                         }else{
  13.                                                 System.out.println("M 的值是:"+m);
  14.                                         }
  15.                                 }
  16.                         }
  17.                 }
  18.         }

  19.          //这里演示break跳出指定层循环。
  20.         public static void cycle2(){
  21.                 lableA://这里就是循环的标签
  22.                 for (int i = 0; i < 5; i++) {
  23.                         System.out.println("I 的值是:"+i);
  24.                         lableB://这里就是循环的标签
  25.                         for (int j = 0; j < 4; j++) {
  26.                                 System.out.println("J 的值是:"+j);
  27.                                 for (int m = 0; m < 3; m++) {
  28.                                         if(m==1){
  29.                                                 System.out.println("M 的值是:"+m+" 跳出第二层循环");
  30.                                                 break lableB;
  31.                                         }
  32.                                         else if(m==2){
  33.                                                 System.out.println("M 的值是:"+m+" 跳出最外层循环");
  34.                                                 break lableA;
  35.                                         }
  36.                                         else{
  37.                                                 System.out.println("M 的值是:"+m);
  38.                                         }
  39.                                 }
  40.                         }
  41.                 }
  42.         }
  43.        
  44.         public static void main(String[] args) {
  45.                 System.out.println("**************************************");
  46.                 cycle1();
  47.                 System.out.println("**************************************");
  48.                 cycle2();
  49.                 System.out.println("**************************************");
  50.         }

  51. }

  52. 运行的结果是:

  53. **************************************
  54. I 的值是:0
  55. J 的值是:0
  56. M 的值是:0
  57. M 的值是:1
  58. M 的值是:2 跳出最里层循环
  59. J 的值是:1
  60. M 的值是:0
  61. M 的值是:1
  62. M 的值是:2 跳出最里层循环
  63. J 的值是:2
  64. M 的值是:0
  65. M 的值是:1
  66. M 的值是:2 跳出最里层循环
  67. J 的值是:3
  68. M 的值是:0
  69. M 的值是:1
  70. M 的值是:2 跳出最里层循环
  71. I 的值是:1
  72. J 的值是:0
  73. M 的值是:0
  74. M 的值是:1
  75. M 的值是:2 跳出最里层循环
  76. J 的值是:1
  77. M 的值是:0
  78. M 的值是:1
  79. M 的值是:2 跳出最里层循环
  80. J 的值是:2
  81. M 的值是:0
  82. M 的值是:1
  83. M 的值是:2 跳出最里层循环
  84. J 的值是:3
  85. M 的值是:0
  86. M 的值是:1
  87. M 的值是:2 跳出最里层循环
  88. I 的值是:2
  89. J 的值是:0
  90. M 的值是:0
  91. M 的值是:1
  92. M 的值是:2 跳出最里层循环
  93. J 的值是:1
  94. M 的值是:0
  95. M 的值是:1
  96. M 的值是:2 跳出最里层循环
  97. J 的值是:2
  98. M 的值是:0
  99. M 的值是:1
  100. M 的值是:2 跳出最里层循环
  101. J 的值是:3
  102. M 的值是:0
  103. M 的值是:1
  104. M 的值是:2 跳出最里层循环
  105. I 的值是:3
  106. J 的值是:0
  107. M 的值是:0
  108. M 的值是:1
  109. M 的值是:2 跳出最里层循环
  110. J 的值是:1
  111. M 的值是:0
  112. M 的值是:1
  113. M 的值是:2 跳出最里层循环
  114. J 的值是:2
  115. M 的值是:0
  116. M 的值是:1
  117. M 的值是:2 跳出最里层循环
  118. J 的值是:3
  119. M 的值是:0
  120. M 的值是:1
  121. M 的值是:2 跳出最里层循环
  122. I 的值是:4
  123. J 的值是:0
  124. M 的值是:0
  125. M 的值是:1
  126. M 的值是:2 跳出最里层循环
  127. J 的值是:1
  128. M 的值是:0
  129. M 的值是:1
  130. M 的值是:2 跳出最里层循环
  131. J 的值是:2
  132. M 的值是:0
  133. M 的值是:1
  134. M 的值是:2 跳出最里层循环
  135. J 的值是:3
  136. M 的值是:0
  137. M 的值是:1
  138. M 的值是:2 跳出最里层循环
  139. **************************************
  140. I 的值是:0
  141. J 的值是:0
  142. M 的值是:0
  143. M 的值是:1 跳出第二层循环
  144. I 的值是:1
  145. J 的值是:0
  146. M 的值是:0
  147. M 的值是:1 跳出第二层循环
  148. I 的值是:2
  149. J 的值是:0
  150. M 的值是:0
  151. M 的值是:1 跳出第二层循环
  152. I 的值是:3
  153. J 的值是:0
  154. M 的值是:0
  155. M 的值是:1 跳出第二层循环
  156. I 的值是:4
  157. J 的值是:0
  158. M 的值是:0
  159. M 的值是:1 跳出第二层循环
  160. **************************************
复制代码
标签名的命名方法是:java命名规则 和 半角冒号   比如: lableA:

from:http://go.cxweb.com.cn/bc9hs
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-5-2 09:29 , Processed in 0.081911 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表