`
沙漠绿树
  • 浏览: 425377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java实现跳出多层循环

阅读更多
引用
    在java中,使用break可以跳出循环,默认情况下是跳出最里层的循环,假如我们要跳出多层循环怎么办呢,Java替我们已经做好了这一点,就是用 循环标签 :即是对某个循环定义一个名字,然后在 break 后面加上这个名字,当符合 break 条件时,程序就会跳到规定的循环那。这个有点像我们编写PL/SQL程序。下面来一个例子吧,说明下这个问题。


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

         //这里演示break跳出指定层循环。
	public static void cycle2(){
		lableA://这里就是循环的标签
		for (int i = 0; i < 5; i++) {
			System.out.println("I 的值是:"+i);
			lableB://这里就是循环的标签
			for (int j = 0; j < 4; j++) {
				System.out.println("J 的值是:"+j);
				for (int m = 0; m < 3; m++) {
					if(m==1){
						System.out.println("M 的值是:"+m+" 跳出第二层循环");
						break lableB;
					}
					else if(m==2){
						System.out.println("M 的值是:"+m+" 跳出最外层循环");
						break lableA;
					}
					else{
						System.out.println("M 的值是:"+m);
					}
				}
			}
		}
	}
	
	public static void main(String[] args) {
		System.out.println("**************************************");
		cycle1();
		System.out.println("**************************************");
		cycle2();
		System.out.println("**************************************");
	}

}

运行的结果是:

**************************************
I 的值是:0
J 的值是:0
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:1
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:2
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:3
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
I 的值是:1
J 的值是:0
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:1
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:2
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:3
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
I 的值是:2
J 的值是:0
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:1
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:2
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:3
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
I 的值是:3
J 的值是:0
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:1
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:2
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:3
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
I 的值是:4
J 的值是:0
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:1
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:2
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
J 的值是:3
M 的值是:0
M 的值是:1
M 的值是:2 跳出最里层循环
**************************************
I 的值是:0
J 的值是:0
M 的值是:0
M 的值是:1 跳出第二层循环
I 的值是:1
J 的值是:0
M 的值是:0
M 的值是:1 跳出第二层循环
I 的值是:2
J 的值是:0
M 的值是:0
M 的值是:1 跳出第二层循环
I 的值是:3
J 的值是:0
M 的值是:0
M 的值是:1 跳出第二层循环
I 的值是:4
J 的值是:0
M 的值是:0
M 的值是:1 跳出第二层循环
**************************************

引用
    标签名的命名方法是:java命名规则 和 半角冒号   比如: lableA:

1
0
分享到:
评论
1 楼 hecongqi 2011-07-05  
这不就是goto了哦

相关推荐

    Java跳出多重嵌套循环过程解析

    主要介绍了Java跳出多重嵌套循环过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java跳出多重嵌套循环

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

    Java跳出多重嵌套循环代码实例

    主要介绍了Java跳出多重嵌套循环,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    在Java中如何跳出当前的多重嵌套循环?

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

    JAVA多层IF嵌套-判断闰年及日期是否正确

    结合实际生活,有助于初学者进一步了解JAVA的IF循环语句

    Java复习大纲面试题.doc

    4.Java当中如何跳出多重循环? 使用break label; 5.JAVA的数据类型分为哪几类? 基本数据类型和引用数据类型 6.String/StringBuffer/StringBuilder的区别是什么? String:不可变 StringBuffer:可变,并且线程安全,...

    java面试过程当中遇到的一些题目

    5. 在JAVA中,如何跳出当前的多重嵌套循环? 10 6. 什么是java序列化,如何实现java序列化?(写一个实例) 10 7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 10 8. 排序都有哪几种方法?请...

    Java面试宝典2017

    在JAVA 中,如何跳出当前的多重嵌套循环?【基础】 答:在最外层循环前加label 标识,然后用break:label 方法即可跳出多重循环。

    java面试题(面试 宝典)

    5. 在JAVA中,如何跳出当前的多重嵌套循环? 10 6. 什么是java序列化,如何实现java序列化?(写一个实例) 10 7. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 10 8. 排序都有哪几种方法?请...

    javaScript如何跳出多重循环break、continue

     •当i=5和10的时候,会执行到break,并退出循环 for(var i=1;i&lt;10&gt;5){ continue; } num++; } console.log(num); ---4 var num=0; for(var i=1;i&lt;10;i++){ if(i%5==0){ continue; } n

    java常见面试100题

    5. 在JAVA中如何跳出当前的多重嵌套循环? 7 6. switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 8 7. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 8 8. char型变量...

    javascript实现label标签跳出循环操作

    首先我们来说说为什么需要label标签,虽然我们已经知道有break,continue跳出循环,但如果是多重循环那么它们就显的无能为力了,所以就出现了label这个标签来为我们服务。 我们先来看看单独使用break的情况 for...

    Java面试宝典(传说中的葵花宝典).doc

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

    张孝祥java就业面试宝典

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

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    Java面试宝典-经典

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    Java面试宝典2017.zip

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    Java面试宝典2010版

    4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量...

    JAVA 综合面试题.doc

    5. 在JAVA中,如何跳出当前的多重嵌套循环? ................................................. 10 break;return; 6. 什么是java序列化,如何实现java序列化?(写一个实例) ................................ 10 ...

    java面试宝典

    16、在JAVA 中,如何跳出当前的多重嵌套循环? 9 17、构造器Constructor 是否可被override? 9 18、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 9 19、是否可以继承String 类? 9 ...

Global site tag (gtag.js) - Google Analytics