本人的GitHub:戳我一下
、、##举个栗子:
public class LabeledFor {
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++;//如果没有这句程序,i会一直等于3.
break;
}
if(i == 7) {
System.out.println("continue outer");
i++;//如果没有这句程序,i会一直等于7.
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("comtinue inner");
continue inner;
}
}
}
}
}
}
总结一下带标签的break和continue:
- 一般的continue会退到最内层循环的开头,并继续执行。
- 带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
- 一般的break会中断并跳出当前循环。
- 带标签的break会中断并跳出标签所指的循环。