`

java 利用label标记退出多重循环

    博客分类:
  • java
阅读更多
学过C语言的都知道,有个goto关键字,利用goto关键字可以跳出多重循环或跳到某个运行点。
java中保留了goto关键字,但是没有goto的功能,主要是考虑到安全性吧。不过java跳出多重循环我们可以使用label标记,在多重循环的最外面一个循环前加上label: ,在需要的跳出的地方写break label就OK了,需要说明这里的label也可以换成其他的单词,只要符合java的标示符就OK。


实例一:普通break跳出当前循环,跳不出多重循环
public class LoopDemo {
	public static void main(String[] args) {
		for (int i = 0; i < 2; i++) {
			System.out.println("运行第一重循环" + i);
			for (int j = 0; j < 2; j++) {
				System.out.println("运行第二重循环" + j);
				for (int k = 0; k < 2; k++) {
					if(k==1){
						break;
					}
					System.out.println("运行第三重循环" + k);
					System.out.println("******************************");
					
				}
			}
		}
	}
}

运行结果:
运行第一重循环0
运行第二重循环0
运行第三重循环0
******************************
运行第二重循环1
运行第三重循环0
******************************
运行第一重循环1
运行第二重循环0
运行第三重循环0
******************************
运行第二重循环1
运行第三重循环0
******************************

实例二:利用label标记跳出多重循环
public class LoopDemo {
	public static void main(String[] args) {
		zengzs: for (int i = 0; i < 2; i++) {
			System.out.println("运行第一重循环" + i);
			for (int j = 0; j < 2; j++) {
				// label: for (int j = 0; j <2; i++) {
				System.out.println("运行第二重循环" + j);
				for (int k = 0; k < 2; k++) {
					// break label;
					if (k == 1) {
						System.out.println("跳出多重循环");
						break zengzs;
					}
					System.out.println("运行第三重循环" + k);
					System.out.println("**************************");
				}
			}
		}
	}
}

运行结果:
运行第一重循环0
运行第二重循环0
运行第三重循环0
**************************
跳出多重循环

2
8
分享到:
评论
2 楼 zengzhaoshuai 2011-09-11  
boolean标记跳出循环好像只能跳出当前循环吧,你说的那个递归确实是可以的,但是递归有时用起来觉得麻烦,没那么直观。
1 楼 ol_beta 2011-09-10  
用个boolean标记跳出比较安全,不然就把代码写好,循环该结束返回,还有多重循环是算法没选好,有的情况下可以考虑递归。

相关推荐

Global site tag (gtag.js) - Google Analytics