public class LabelTest {
public static void main(String[] args) {
testLabel();
}
private static void testLabel() {
System.out.println("testLabel");
System.out.println("retry:");
outer:
for (int i = 0; i < 2; i++) {
System.out.println("out i: " + i);
for (int j = 0; j < 4; j++) {
if (j == 2) {
//此处替换
continue outer;
}
System.out.println("in j: " + j);
}
}
System.out.println("testLabel end!");
}
}
/**
* break outer: 内外全部终止
*
* testLabel
* retry:
* out i: 0
* in j: 0
* in j: 1
* testLabel end!
*/
/**
* break: 内层终止,外部继续
*
* testLabel
* retry:
* out i: 0
* in j: 0
* in j: 1
* out i: 1
* in j: 0
* in j: 1
* testLabel end!
*/
/**
* continue: 内外继续,跳出2
*
* testLabel
* retry:
* out i: 0
* in j: 0
* in j: 1
* in j: 3
* out i: 1
* in j: 0
* in j: 1
* in j: 3
* testLabel end!
*/
/**
* continue outer: 内层终止,外部继续 同break
*
* testLabel
* retry:
* out i: 0
* in j: 0
* in j: 1
* out i: 1
* in j: 0
* in j: 1
* testLabel end!
*
总结下来:
continue outer
等同于内存的 break
break outer
全部终止
END