java中的"goto"--label

java中没有goto,但是goto是保留字。例如int goto;是不合法的。

但是java中有标签,仅作用在多重循环的continue和break中。

continue和break只能作用于本层循环,但是有了标签可以直接跳出多重循环。

代码举例:

public class Main {
	
	public static void main(String[] args) {
		
		first: // 标签与循环直接不可以加语句
		for (int i = 0; i < 3; ++i) {
			System.out.println("\nfirst: " + (i + 1) + " times start");
			
			second:
			for (int j = 0; j < 2; ++j) {
				System.out.println("\tsecond: " + (j + 1) + " times start");
				if (i == 1 && j == 1) {
					System.out.println("\t----break----");
					break;
				}
				
				
				for (int k = 0; k < 2; ++k) {
					System.out.println("\t\tthird: " + (k + 1) + " times start");
					if (i == 1 && j == 0 && k == 0) {
						System.out.println("\t\t----continue----");
						continue;
					}
					if (i == 2 && j == 0) {
						System.out.println("\t\t----continue second----");
						continue second;
					}
					if (i == 2 && j == 1 && k == 1) {
						System.out.println("\t\t----break first----");
						break first;
					}
					
					System.out.println("\t\tthird: " + (k + 1) + " times end");
				}
				System.out.println("\tsecond: " + (j + 1) + " times end");
			}
			System.out.println("first: " + (i + 1) + " times end");
		}
		
	}
	
}

 输出:

first: 1 times start
	second: 1 times start
		third: 1 times start
		third: 1 times end
		third: 2 times start
		third: 2 times end
	second: 1 times end
	second: 2 times start
		third: 1 times start
		third: 1 times end
		third: 2 times start
		third: 2 times end
	second: 2 times end
first: 1 times end

first: 2 times start
	second: 1 times start
		third: 1 times start
		----continue----
		third: 2 times start
		third: 2 times end
	second: 1 times end
	second: 2 times start
	----break----
first: 2 times end

first: 3 times start
	second: 1 times start
		third: 1 times start
		----continue second----
	second: 2 times start
		third: 1 times start
		third: 1 times end
		third: 2 times start
		----break first----

 

posted @ 2016-03-27 23:35  我不吃饼干呀  阅读(3205)  评论(0编辑  收藏  举报