循环的label(标记)跟臭名昭著的goto有点相似,java虽然保留了goto的关键字但是没有使用它,而循环的label却是可以使用的。
无论是对与for循环还是while,label都有以下规则:
1.一般的continue会回到内层循环的顶端,继续执行。
2.labeled continue会跳跃至label所在处,然后在label之后重新进入循环。
3.一般的break会跳离循环。
4.labeled break 会跳离label所描述的循环。
还需要记住,在java里头使用label的唯一理由是:在嵌套循环中想要求命令break或者continue越过一个以上的嵌套层。
以下是两个示例:
public class LabelTest { /** * @param args */ public static void main(String[] args) { System.out.println("label test"); outer: for (int i = 0; i < 3; i++) { System.out.println("outer" + i); inner: for (int j = 0; j < 3; j++) { System.out.println("inner" + j); break outer; } } } } //运行结果: //label test //outer0 //inner0public class LabelTest { /** * @param args */ public static void main(String[] args) { System.out.println("label test"); outer: for (int i = 0; i < 3; i++) { System.out.println("outer" + i); inner: for (int j = 0; j < 3; j++) { System.out.println("inner" + j); continue outer; } } } } //运行结果: //label test //outer0 //inner0 //outer1 //inner0 //outer2 //inner0