### continue 跳转语句

continue 语句只能应用在 for、while 和 do...while 循环语句中，用于结束本次循环直接跳过循环体剩余的语句，进行下一次循环。

语法：

continue 标号;

标号：这是可选参数，标号有合法标识符和“：”字符组成，例如“for1：”。

continue 语句有两种使用情况：

l 不带标号跳转

如果执行不带标号的 continue 语句，将结束本次循环，跳过循环体中剩余的没有被执行的语句，根据循环的条件判断去执行下一次循环，或者结束循环。如果是 for 循环还要先执行表达式 3，改变循环控制变量的值。

例 实现输出 100 以内能被 7 整除的所有数，使用 continue 语句过滤其它的数字。

public class ContinueNull {

public static void main(String[] args) {

System.out.println("100 以内能被 7 整除的数有：");

for (int i = 1; i < 100; i++) {

if (i % 7 != 0) { // 当 i 的值不能被 7 整除时

continue; // 结束本次循环，放弃不能被 7 整除的书

}

System.out.print(i + "、"); // 输出 i 的值

}

}

}

实例中在 For 循环中加入了 if 判断语句，如果循环控制变量 i 不能被 7 整除，就执行 continue 语句放弃本次循环，否则输出变量 i，这时变量 i 肯定能被 7 整除。

运行结果如图 1 所示。

图 1 实例运行结果

l 带标号跳转

这种情况下，continue 语句不是跳过当前循环语句的一次循环，而是跳过标号指定的循环语句的一次循环，然后判断指定标号的循环条件，以决定是否执行标号指定的循环。

标号定义在语句之前，由一个合法的标识符和“：”字符组成。

语法：

标号：程序代码

continu 语句跳转的标号用于指定循环语句，所以定义在循环语句之前。

说明：带标号的continue跳转语句经常用在多层循环中。

例 使用带标号的 For 循环和带标号的 continue 语句输出九九乘法表。

public class MultiplicationTable {

public static void main(String[] args) {

outer: for (int i = 1; i <= 9; i++) { // 第一层循环

for (int j = 1; j <= 9; j++) { // 第二次循环

if (j > i) { // 如果 j>i

System.out.println(); // 换行

continue outer; // 跳过循环放弃不需要的乘数

}

String str = j + "*" + i + "=" + j * i;

System.out.print(str + "\t"); // 使用制表符格式化输出

}

System.out.println();

}

}

}

实例中在内层 For 循环中加入了 if 判断语句，如果循环控制变量 j 大于外层循环控制变量 i，那这个数字对于乘法表的当前行就没有用了，所以输出一个空行并执行 continue 语句跳出到 outer 标识的 For 循环，这时内层循环语句就被结束或者说终止了，转去执行 outer 标识的外层循环。

运行结果如图 4.24 所示。

图 2 实例运行结果

如果把内层循环的 if 语句注释掉，如下所示：

//if (j > i) { // 如果 j>i

// System.out.println(); // 换行

// continue outer; // 跳过循环放弃不需要的乘数

//}

然后再运行程序，将会输出如图 3 所示的结果。

图 3 实例注释 if 语句后的运行结果