java提供了3种跳出循环的方法:break,continue和return
1 break
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("第一个循环"+i);
for (int j = 0; j < 5; j++) {
if(j==2){
break;
}
System.out.println("第二个循环"+j);
}
}
}
结果为:
第一个循环0第二个循环0第二个循环1
第一个循环1第二个循环0第二个循环1
第一个循环2第二个循环0第二个循环1
第一个循环3第二个循环0第二个循环1
第一个循环4第二个循环0第二个循环1
由此可见:break只是跳出了第二层循环,并没有跳出第一层循环
public static void main(String[] args) {
return_black:
for (int i = 0; i < 5; i++) {
System.out.println("第一个循环"+i);
for (int j = 0; j < 5; j++) {
if(j==2){
break return_black;
}
System.out.print("第二个循环"+j);
}
}
}
结果为:第一个循环0第二个循环0第二个循环1
由此可见:break加了标签跳出了标签所在的循环层
2 continue
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("第一个循环"+i);
for (int j = 0; j < 5; j++) {
if(j==2){
continue;
}
System.out.print("第二个循环"+j);
}
}
}
结果为:
第一个循环0第二个循环0第二个循环1第二个循环3第二个循环4
第一个循环1第二个循环0第二个循环1第二个循环3第二个循环4
第一个循环2第二个循环0第二个循环1第二个循环3第二个循环4
第一个循环3第二个循环0第二个循环1第二个循环3第二个循环4
第一个循环4第二个循环0第二个循环1第二个循环3第二个循环4
由此可见:continue只是终止了本次循环不会跳出第二层的循环体,更不会跳出第一层的循环体了。
public static void main(String[] args) {
return_black:
for (int i = 0; i < 5; i++) {
System.out.println("第一个循环"+i);
for (int j = 0; j < 5; j++) {
if(j==2){
continue return_black;
}
System.out.print("第二个循环"+j);
}
}
}
结果为:第一个循环0第二个循环0第二个循环1
第一个循环1第二个循环0第二个循环1
第一个循环2第二个循环0第二个循环1
第一个循环3第二个循环0第二个循环1
第一个循环4第二个循环0第二个循环1
由此可见:continue加标签跳出到标签所在的那层循环继续执行