JAVA for语句中的break、continue、return使用简介

5.3.1 使用break 语句在Java 中,break语句有3种作用。

第一,你已经看到,在switch语句中,它被用来终止一个语句序列。

第二,它能被用来退出一个循环。

第三,它能作为一种“先进”goto 语句来使用。

下面对最后 2种用法进行解释。

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

下面是一个简单例子:

// Using break to exit a loop. class BreakLoop { public static void main(String args[]) { for(int i=0; i<100; i++) { if(i == 10) break; // terminate loop if i is 10 System.out.println("i: " + i); } System.out.println("Loop complete."); } }

该程序产生如下输出:

i: 0 i: 1 i: 2 i: 3 i: 4 i: 5 i: 6 i: 7 i: 8 i: 9 Loop complete.

正如你看到那样,尽管for 循环被设计为从 0执行到99,但是当i等于10时,break语句终止程序。break语句能用于任何 Java 循环中,包括人们有意设置无限循环。例如,将上一个程序用while 循环改写如下。该程序输出和刚才看到输出一样。

// Using break to exit a while loop. class BreakLoop2 { public static void main(String args[]) { int i = 0; while(i < 100) { if(i == 10) break; // terminate loop if i is 10 System.out.println("i: " + i); i++; } System.out.println("Loop complete."); } }

在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面循环。

例如:

// Using break with nested loops. class BreakLoop3 { 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; // terminate loop if j is 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语句仅仅终止该循环,外部循环不受影响。

break ,在这里要记住两点。首先,一个循环中可以有一个以上break 语句。但要小心,太多break 语句会破坏你代码结构。其次,switch语句中break仅仅影响该switch 语句,而不会影响其中任何循环。

注意:break 不是被设计来提供一种正常循环终止方法。循环条件语句是专门用来终止循环。只有在某类特殊情况下,才用break 语句来取消一个循环。

把break 当作goto 一种形式来用 break语句除在switch语句和循环中使用之外,它还能作为goto 语句一种“文明”形式来使用。Java 中没有 goto 语句,因为goto 语句提供一种改变程序运行流程非结构化方式。这通常使程序难以理解和难于维护。它也阻止某些编译器优化。但是,有些地方goto 语句对于构造流程控制是有用而且是合法。

5.3.2 使用continue 语句有时强迫一个循环提早反复是有用。也就是,你可能想要继续运行循环,但是要忽略这次重复剩余循环体语句。实际上,goto 只不过是跳过循环体,到达循环尾部。continue 语句是break语句补充。在while 和do while 循环中,continue 语句使控制直接转移给控制循环条件表达式,然后继续循环过程。在for 循环中,循环反复表达式被求值,然后执行条件表达式,循环继续执行。对于这3种循环,任何中间代码将被旁路。

下例使用continue 语句,使每行打印2个数字: // Demonstrate continue. class Continue { public static void main(String args[]) { for(int i=0; i<10; i++) { System.out.print(i + " "); if (i%2 == 0) continue; System.out.println(""); } } } 该程序使用%(模)运算符来检验变量i是否为偶数,如果是,循环继续执行而不输出一个新行。

5.3.3 使用return语句最后一个控制语句是return。

return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。尽管对return 语句详细讨论在第 7 章开始,这里对其作简要地介绍。 在一个方法任何时间,return 语句可被用来使正在执行分支程序返回到调用它方法。下面例子说明这一点。下例中,由于是Java 运行系统调用main() ,因此,return语句使程序执行返回到Java 运行系统。 // Demonstrate return. class Return { public static void main(String args[]) { boolean t = true; System.out.println("Before the return."); if(t) return; // return to caller System.out.println("This won’t execute."); } } 该程序结果如下: Before the return. 正如你看到一样,最后println( ) 语句没有被执行。一旦return语句被执行,程序控制传递到它调用者。 最后一点:在上面程序中,if(t)语句是必要。没有它,Java 编译器将标记“执行不到代码”(unreachable code )错误,因为编译器知道最后println ()语句将永远不会被执行。为阻止这个错误,为这个例子能够执行,在这里使用if语句来“蒙骗”编译器。

也有善意的提醒:何不去远方!昆明呀——赶一个花海;

JAVA for语句中的break、continue、return使用简介

相关文章:

你感兴趣的文章:

标签云: