计算机等级二级JAVA辅导:java跳转语句
Java支持三种跳转语句:break、continue和return。这些语句将控制权转移给程序的其他部分。下面讨论每种说法。
注意:除了这里讨论的jump语句,Java还支持另一种可以改变你的程序执行过程的方法:通过异常处理。异常处理提供了一种结构化的方法,通过这种方法,您的程序可以捕获和处理运行时错误。它由以下五个关键字控制:try、catch、throw、throws和finally。本质上,异常处理机制允许您的程序完成非本地分支跳转。由于异常处理是一个大话题,我们将在第10章讨论它。
5.3.1使用break语句
在Java中,break语句有三个作用。首先,您已经看到在switch语句中,它用于终止一个语句序列。第二,它可以用来退出一个循环。第三,它可以用作“高级”goto语句。下面解释最后两种用法。
使用break退出循环
可以使用break语句直接强制退出循环,忽略循环体中的任何其他语句以及循环的条件测试。当循环中遇到break语句时,循环终止,程序控制循环后的语句重新开始。下面是一个简单的例子:
/使用break退出循环。
类中断循环{
公共静态void main (string args []) {
for(int I = 0;IIF(I = = 10)break;//如果I为10
system . out . println(" I:"+I)则终止循环;
}
System.out.println("循环完成。");
}
}
程序产生如下输出:
I:0
I:1
I:2
I:3
I:4
I:5
I:6[/br]正如您所看到的,虽然for循环被设计为从0到99执行,但是当I等于10时,break语句终止程序。break语句可以用在任何Java循环中,包括人们有意设置的无限循环。例如,用while循环重写前面的程序,如下所示。这个程序的输出和刚才看到的一样。
//使用break退出while循环。
class break loop 2 {
public static void main(String args[]){
int I = 0;
while(I < 100){
if(I = = 10)break;//如果I为10
system . out . println(" I:"+I)则终止循环;
i++;
}
System.out.println("循环完成。");
}
}
当break语句在一系列嵌套循环中使用时,它只会终止最内层的循环。示例:
/对嵌套循环使用break。
class break loop 3 {
public static void main(string args[]){
for(int I = 0;is system . out . print(" Pass "+I+":);
for(int j = 0;jif(j = = 10)break;//如果j为10则终止循环
system . out . print(j+" ");
}
system . out . println();
}
System.out.println("循环完成。");
}
}
该程序生成以下输出:
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
循环完成。
可以看出,内循环中的break语句只是终止了循环,外循环不受影响。
关于休息,有两件事要记住。首先,一个循环中可以有多个break语句。但是要小心,太多的break语句会破坏你的代码结构。其次,switch语句中的break只影响switch语句,而不影响其中的任何循环。
注意:中断不是为了提供一种正常的周期终止方法。循环的条件语句专门用于终止循环。只有在某些特殊情况下,break语句才用于取消循环。
将break用作goto的一种形式
break语句除了用在switch语句和循环中之外,还可以用作goto语句的一种“文明”形式。Java中没有goto语句,因为goto语句提供了一种非结构化的方式来改变程序的运行进程。这通常会使程序难以理解和维护。它还会阻止一些编译器进行优化。然而,在某些地方,goto语句对于构造过程控制是有用且合法的。例如,当从深度嵌套的循环中退出时,goto语句很有帮助。因此,Java定义了break语句的扩展形式来处理这种情况。通过使用这种形式的中断,您可以终止一个或多个代码块。这些代码块不必是循环或switch语句的一部分,它们可以是任何代码块。此外,因为这种形式的break语句是有标签的,所以您可以清楚地指定从哪里再次开始执行。你会看到,break给你带来了goto的好处,抛弃了goto语句带来的麻烦。
0条评论