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----