continue跳转语句

continue语句只能应用在forwhiledo...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语句后的运行结果