break:
1)没label:中断内部迭代,回到外部迭代,跳出当前循环
2)有label:跳出标签所指的循环
continue:
1)没label:回到内部迭代的起始处,不执行continue后面的语句
2)有label:到达标签位置,并重新进入紧接在标签后的循环
public class TestLableFor {
public static void main(String[] args) {
int i = 0;
outer:
for (; true;) {
inner:
for (; i < 10; i++) {
System.out.println("i=" + i);
if (i == 2) {
System.out.println("continue");
continue;
}
if (i == 3) {
System.out.println("break");
i++;
break;
}
if (i == 7) {
System.out.println("continue outer");
i++;
continue outer;
}
if (i == 8) {
System.out.println("break outer");
break outer;
}
for (int k = 0; k < 5; k++) {
if (k == 3) {
System.out.println("continue inner");
continue inner;
}
}
}
}
}
}
结果:
i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer
public class TestLabelWhile {
public static void main(String[] args) {
int i = 0;
outer: while (true) {
System.out.println("outer while loop");
while (true) {
i++;
System.out.println("i=" + i);
if (i == 1) {
System.out.println("continue");
continue;
}
if (i == 3) {
System.out.println("continue outer");
continue outer;
}
if (i == 5) {
System.out.println("break");
break;
}
if (i == 7) {
System.out.println("break outer");
break outer;
}
}
}
}
}
结果:
outer while loop
i=1
continue
i=2
i=3
continue outer
outer while loop
i=4
i=5
break
outer while loop
i=6
i=7
break outer