写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著
continue 语句有两种情况
1、continue
continue 语句类似于break 语句,区别在于break 是直接跳出所在最内层语句,而continue 只跳出本次循环,让程序继续进行下一次循环。
例子:
public class firstestcon1 {
public static void main(String[] args) {
for ( int x = 21 ; x < 24 ; x ++ ) { // x 从21 循环到23
if ( x != 22 ) { // 这个 if 语句决定了当 x 不等于22时,继续向下进行,当 x 等于22时,本次 if 语句结束
for(int y = 1 ; y < 4 ; y ++ ) { //y 从1 循环到3
if ( y != 2 ) { // 这个 if 语句决定了当 y 不等于2 时,输出x和y,当 y 等于 2 时,本次 if 语句结束
System.out.println("x = "+ x + ", y =" +y );
}
continue; // 这个continue决定了当 y = 2 时,跳过本次 y 循环,进入下一次 y 循环
}
}
continue; //这个continue决定了当 x = 22时,跳过本次 x 循环,进入下一次 x 循环
}
}
}
程序运行结果为:
x = 21, y =1
x = 21, y =3
x = 23, y =1
x = 23, y =3
2、continue + 标签
break后跟标签代表直接跳出标签所标记的语句块,而continue后跟标签代表跳出标签所在的本次循环。
例子1:
public class firstestcon2 {
public static void main(String[] args) {
back1: //定义第一个 for 语句标签 back1
for(int i = 0; i < 4; i++) {
back2: //定义第二个 for 语句标签 back2
for(int j = 0; j < 4; j++) {
if(j == i) {
continue back2; //if 语句决定了:当 i = j 时,跳过本次 j 循环,进入下一次 j 循环
}
System.out.println(i + " != " + j);
}
}
}
}
上述代码运行结果为:
0 != 1
0 != 2
0 != 3
1 != 0
1 != 2
1 != 3
2 != 0
2 != 1
2 != 3
3 != 0
3 != 1
3 != 2
例子2:
public class firstestcon2 {
public static void main(String[] args) {
back1: //定义第一个 for 语句标签 back1
for(int i = 0; i < 4; i++) {
back2: //定义第二个 for 语句标签 back2
for(int j = 0; j < 4; j++) {
if(j == i) {
continue back1; //if 语句决定了:当 i = j 时,跳过本次 i 循环,进入下一次 i 循环
}
System.out.println(i + " != " + j);
}
}
}
}
上述代码运行结果为:
1 != 0
2 != 0
2 != 1
3 != 0
3 != 1
3 != 2
注意:“ continue +标签 ”语句与break一样,定义标签时,标签后必须立即跟 for、do、while、witch语句,不然会出错。**
例如下面这两张图片:
back1 标签并没有立即跟 for 语句,故 第10行 “ continue + back1 ”出错;标签 back2 后面立即跟了 for 语句,故 “ continue + back2 ”不会出错。