break and continue

   在任何循环语句的主体部分,可以用break 和continue 控制循环的流程。其中,break 用于退出循环,不执行循环中剩余的语句。而continue 则停止执行当前的循环,然后退回循环起始处,开始新的循环。下面看一个例子

  • 1-1 break and continue的例子

//: control/BreakAndContinue.java
// Demonstrates break and continue keywords.
import static net.mindview.util.Range.*;
public class BreakAndContinue {
  public static void main(String[] args) {
    for(int i = 0; i < 100; i++) {
      if(i == 74) break; // Out of for loop
      if(i % 9 != 0) continue; // Next iteration
      System.out.print(i + " ");
    }
    System.out.println();
    // Using foreach:
    for(int i : range(100)) {
      if(i == 74) break; // Out of for loop
      if(i % 9 != 0) continue; // Next iteration
      System.out.print(i + " ");
    }
    System.out.println();
    int i = 0;
    // An "infinite loop":
    while(true) {
      i++;
      int j = i * 27;
      if(j == 1269) break; // Out of loop
      if(i % 10 != 0) continue; // Top of loop
      System.out.print(i + " ");
    }
  }
}

程序运行的结果如下:

[Thinking in Java]之控制执行(Controling Execution)(三)_java

   在这个for 循环中,i 的值永远不会到达100。因为一旦i 到达74,break 语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需象这样使用break。只要i 不能被9 整除,continue 语句会使程序流程返回循环的最开头执行(所以使i 值递增)。如果能够整除,则将值显示出来。
第二部分揭示了一个“无限循环”的情况。然而,循环内部有一个break 语句,可中止循环。除此以外,大家还会看到continue 移回循环顶部,同时不完成剩余的内容(所以只有在i 值能被9 整除时才打印出值)。