
上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语句被执行,程序控制被传递到它的调用者。