01_basic_10_while_statement

第十章 while语句和do-while语句

1 while循环语句

循环语句用于处理一些需要重复执行多次的逻辑或者计算。在while循环语句中,while是关键字,用于标识while循环语句。condition是一个表达式,用于控制是否执行body和执行几次body中的语句。

当表达式condition的值为true时,Java程序会执行body中的语句,直到condition的值变为false。如果第一次计算condition的值时,condition的值为false,那么,Java程序不会运行body中的语句。当body只包含一条语句时,花括号可以省略。

当表达式condition生成的结果是Boolean类型的对象时,while语句会自动执行拆箱操作(Unboxing),将其转换成boolean类型的值,然后再判断是否继续执行body中的语句。

while ( condition ) {
    body
}

例如,我们可以使用while循环来计算1-10的整数和。在下面的程序中,我们定义了两个整形变量。变量i的值从1逐渐增长至10;变量sum用于记录每一步的累加的和。最后,当i的值等于11时,程序退出循环。变量sum中保存的是计算结果,即1-10的累加和。

int i = 1;
int sum = 0;
while ( i <= 10 ) {
    sum += i;
    i++;
}
System.out.println(sum);

如果condition的值始终为true,则Java程序会永远的反复执行body中的语句。一个常见的例子是无限循环。有些应用程序需要反复的处理相同的逻辑。在此时,可以考虑使用如下的例子。

while (true) {
    // 无限循环...
}

2 do-while循环语句

Java还支持do-while循环语句。与while语句不同的是,do-while语句先执行body中的语句,然后才判断condition的值。当condition的值为true时,程序继续执行body中的语句,直到condition的值为false为止。do-while中的花括号不能省略

当表达式condition生成的结果是Boolean类型的对象时,do-while语句会自动执行拆箱操作(Unboxing),将其转换成boolean类型的值,然后再判断是否继续执行body中的语句。

do {
    body
} while (condition);

类似的,我们也可以使用do-while循环来计算1-10的和。因为do-while语句是先运行body中的语句,再做判断。所以,当i的值为10时就需要退出循环了。

int i = 0;
int sum = 0;

do {
    i++;
    sum += i;
} while (i < 10);

System.out.println(sum);

3 小结

while语句和for语句都是循环语句。但是,while语句的语法和语义更为简单,即反复的执行某一逻辑直到条件不成立为止。while语句先判断循环条件,再执行循环体;而do-while语句则先执行循环体,再判断循环条件。我们将在下一章介绍for循环。for循环为元素遍历提供了更方便的语法支持。

上一章
下一章

注册用户登陆后可留言

Copyright  2019 Little Waterdrop, LLC. All Rights Reserved.