Java语言中提供了4类程序控制语句,来描述流程:

1.循环语句:while,do-while,for

2.分支语句:if-else,switch,

3.跳转语句 break,continue,label: 和return

4.异常处理语句:try-catch-finally,throw

 

java 的循环语句有for,while 和 do-while 。这些语句创造了我们通常所称的循环(loops)。你可能知道,一个循环重复执行同一套指令直到一个结束条件出现。你将看到,Java 有适合任何编程所需要的循环结构。

5.2.1 while 语句
while 语句是Java 最基本的循环语句。当它的控制表达式是真时,while 语句重复执行一个语句或语句块。它的通用格式如下:

while(condition) {
// body of loop
}

条件condition 可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件condition 为假时,程序控制就传递到循环后面紧跟的语句行。假如只有单个语句需要重复,大括号是不必要的。

下面的while 循环从10开始进行减计数,打印出10行“tick”。

// Demonstrate the while loop.
class While {
public static void main(String args[]) {
int n = 10;

while(n > 0) {
System.out.PRintln("tick " + n);
n--;

}
}
}

当你运行这个程序,它将“tick”10次:

tick 10
tick 9
tick 8
tick 7
tick 6
tick 5
tick 4
tick 3
tick 2
tick 1

因为while 语句在循环一开始就计算条件表达式,若开始时条件为假,则循环体一次也不会执行。例如,下面的程序中,对println( ) 的调用从未被执行过:

int a = 10, b = 20;

while(a > b)
System.out.println("This will not be displayed");

while 循环(或Java 的其他任何循环)的循环体可以为空。这是因为一个空语句(null statement) (仅由一个分号组成的语句)在Java 的语法上是合法的。例如,下面的程序:

// The target of a loop can be empty.
class NoBody {
public static void main(String args[]) {

int i, j;
i = 100;
j = 200;

// find midpoint between i and j
while(++i < --j) ; // no body in this loop

System.out.println("Midpoint is " + i);
}
}

该程序找出变量i和变量j的中间点。它产生的输出如下:

Midpoint is 150

该程序中的while 循环是这样执行的。值i自增,而值j自减,然后比较这两个值。假如新的值i仍比新的值j小,则进行循环。假如i等于或大于j,则循环停止。在退出循环前,i 将保存原始i和j的中间值(当然,这个程序只有在开始时i比j小的情况下才执行)。正如你看到的,这里不需要循环体。所有的行为都出现在条件表达式自身内部。在专业化的Java 代码中,一些可以由控制表达式本身处理的短循环通常都没有循环体。