在没有指定跳转标签的情况下:
for(int i = 0; i < 10; i++){
//do something
}
1)continue
结束本次循环,开始下一次循环(退回最内层循环的开始处并继续执行下次循环)。
2)break
中断并跳出当前循环,从for循环开始处重新进入循环。break之后会忽略剩下的所有语句,包括for语句中的i++,即会跳过递增表达式。
3)return
结束循环,跳出当前方法,向下执行。
其中执行continue与break时只中断最内层的循环,return中断循环并退出。
对于continue与break而言,使用标签时则跳转到指定的标签下继续执行,此处需要说明的是:在Java中需要使用标签的唯一理由是因为有循环嵌套的存在,而且想从多层嵌套中continue或break(Thinking in Java. P73)。
例1:
public class JavaControlForLoops {
public static void main(String[] args){
int i = 0;
outer:
for (; true;){
System.out.println("restart");
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;
}
}
}
}
}
}
输出结果:
-------start
i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
-------start
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
-------start
i=8
break outer