Java程序设计与实践教程(第2版)
上QQ阅读APP看书,第一时间看更新

3.4 跳转语句

Java语言有3种跳转语句,分别是break语句、continue语句和return语句。

3.4.1 break语句

在Java中,break语句有两种作用:一是在switch语句中被用来终止一个语句序列;另一种是在循环结构中用来退出循环。

当使用break语句直接强行退出循环时,忽略循环体中的任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制转到循环后面的语句重新开始。

例3-9】 break语句使用举例。

        //文件名:BreakLoop1.java
        public class BreakLoop1{
            public static void main(String args[]) {
                for(int i=0; i<100; i++){
                    if (i==2)
                        break;                    //如果i=10, 终止循环
                    System.out.println("i: "+i);
                }
                System.out.println("Loop complete. ");
            }
        }

程序的运行结果如下:

        i:0
        i:1
        Loop complete.

在多重循环中使用break语句时,它仅能终止其所在的循环层。

例3-10】 break语句在多重循环中的应用。

        //文件名:BreakLoop2.java
        public class BreakLoop2{
            public static void main(String args[]) {
                for (int i=0; i<3; i++){
                    System.out.print("Pass "+i+": ");
                    for (int  j=0; j<100; j++) {
                        if (j==10)
                            break;              //如果j=10, 终止循环
                        System.out.print( j+" ");
                    }
                    System.out.println();
                }
                System.out.println("Loops complete.");
            }
        }

程序的运行结果如下:

        Pass 0:0 1 2 3 4 5 6 7 8 9
        Pass 1:0 1 2 3 4 5 6 7 8 9
        Pass 2:0 1 2 3 4 5 6 7 8 9
        Loops complete.

可以看出,在内部循环中的break语句仅仅终止了该循环,外部的循环不受影响。

3.4.2 continue语句

break语句用来退出循环,而continue语句则跳过循环体中尚未执行的语句,回到循环体的开始处继续下一轮的循环。当然,在下一轮循环开始前,要先进行终止条件的判断,以决定是否继续循环,对于for语句,在进行终止条件的判断前,还要先执行步长迭代语句。

例3-11】 打印乘法九九表。

        //文件名:MultiList.java
        public  class  MultiList{
            public static void main(String args[]){
                for (int i=1; i<=9; i++){
                    for(int j=1; j<=i; j++){
                        System.out.print(j+"*"+i+"="+j*i+" ");
                        if (i==j){
                            System.out.print("\n");
                            //如果i=j则跳转到外层循环的起始(continue要换成break)
                            continue;
                        }
                    }
                }
            }
        }

程序的运行结果如下:

      1*1=1
      1*2=2  2*2=4
      1*3=3  2*3=6  3*3=9
      1*4=4  2*4=8  3*4=12 4*4=16
      1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
      1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
      1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
      1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
      1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

3.4.3 return语句

return语句的主要功能是从一个方法返回到另一个方法。也就是说,return语句使程序控制返回到调用它的方法。因此将它分类为跳转语句。

例3-12】 return语句应用举例。

        //文件名:ReturnExample.java
        public class ReturnExample{
            public static void main(String args[]) {
                boolean  t=true;
                System.out.println("Before the return.");
                if (t)
                    return;
                System.out.println("This won't execute.");
            }
        }

程序的运行结果如下:

        Before the return.

正如程序结果所示,程序最后的println()语句没有被执行。一旦return语句被执行,程序控制被传递到它的调用者。