出处:Thinging in Java
continue和break多用于管理循环体代码的执行。通过continue会直接跳过剩下的代码回到for循环的判断语句或者是while循环的判断语句,而break会直接结束循环从循环后面的代码继续运行。
标签是第一次接触,标签是后面跟一个冒号的标识符,如lable:
它和循环体应该是紧靠着的,即两者之间没有别的语句。(一定要记得标签的书写规范,还有标签和循环体之间不写别的代码,别又忘记了)
标签和continue、break组合实现了goto的效果。
下面是书中的例子
import java.util.*;
public class Test{
static void prt(String s){
System.out.println(s);
}
public static void main (String[] args){
int i=0;
outer:
for (; true; ) {
inner:
for (int j=0; i<10; i++,j++) {
prt("i = "+i);
prt("j = "+j);
if (i==2) {
prt("continue");
continue ;
}
if (i==3) {
prt("break");
i++;
break;
}
if (i==5) {
prt("continue outer");
i++;
continue outer;
}
if (i==8) {
prt("break outer");
break outer;
}
for (int k=0; k<5; k++) {
if (k == 3) {
prt("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
所以总结下continue、break和标签的效果是continue或者break结合标签会让continue和break到达指定的循环,即continue+inner让机器执行到inner所表示的循环即内循环的判断语句处,而continue+outer让机器执行到outer所表示的循环即外循环的判断语句处。break+inner让机器从内循环结束的地方开始继续运行,break+outer让机器从外循环结束的地方开始继续运行。
i++没有执行不懂是怎么回事