do..while循环语句也称为后测试循环语句,它的循环重复执行方式,也是利用一个条件来控制是否要继续重复执行这个语句。与while循环所不同的是,它先执行一次循环语句,然后再去判断
-
do...while循环语句
do..while循环语句也称为后测试循环语句,它的循环重复执行方式,也是利用一个条件来控制是否要继续重复执行这个语句。与while循环所不同的是,它先执行一次循环语句,然后再去判断是否继续执行。例如,计算1到100之间所有整数的和,也可以使用do...while循环语句实现。具体代码如下:
int sum=0;
int i=1;
do{
sum+=i;
i++;
} while (i<=100);
System.out.println("1到100之间所有整数的和是: "+sum);
在对while循环语句有一个初步的认识后,下面给出while循环语句的语法格式。while循环语句的语法格式如下:
do{
语句序列
} while(条件表达式); //注意!语句结尾处的分号";"一定不能少
语句序列:也就是循环体,循环开始时首先被执行一次,然后在条件表达式的结果为true时,重复执行。
条件表达式:决定是否进行循环的表达式,其结果为boolean类型,也就是其结果只能是true或false。
说明:
do...while循环语句执行的过程是:先执行一次循环体,然后再判断条件表达式,如果条件表达式的值为true,则继续执行,否则跳出循环。也就是说,do...while循环语句中的循环体至少被执行一次。
do...while循环语句的执行过程如图1所示。
图1 do...while循环语句的执行流程图
注意:
在使用do...while语句时,也一定要保证循环可以正常结束,也就是必须保证条件表达式的值存在为false的情况,否则将形成死循环。例如,下面的循环语句就会造成死循环,原因是i永远都小于100。
int i=1;
do{
System.out.println(i);
} while(i<=100);
一般的情况下,使用do...while语句和while语句处理同一问题时,若二者的循环体部分是一样的,那么它们的执行结果也是一样的。例如,本节中介绍的使用do...while语句计算1到100之间所有整数的和与3.3.2节中介绍的使用while语句计算1到100之间所有整数的和,得到的结果是一样。但是如果while后面的表达式一开始就为false,那么这两种循环产生的结果就不一样了,下面将举例说明。
本实例主要介绍通过do...while语句和while语句实现列举出从变量i开始的累加和小于10的连续整数。具体实现步骤如下。
(1)选择“开始”/“所有程序”/“附件”/“记事本”命令,打开一个无标题的记事本文档。
(2)在新打开的记事本文档中输入以下代码:
public class CompareWDoW {
public static void main(String[] args) {
int i=1;
int sum=i;
System.out.println("*********当i的值为"+i+"时*********");
System.out.println("通过do...while语句实现:");
do{
System.out.println(i); //输出i的值
i++;
sum+=i; //累加i的值
} while (sum<10); //当累加和小于10时
i=1;
sum=i;
System.out.println("通过while语句实现:");
while (sum<10){ //当累加和小于10时
System.out.println(i);
i++;
sum+=i;
}
i=10;
sum=i;
System.out.println("********当i的值为"+i+"时********");
System.out.println("通过do...while语句实现:");
do{
System.out.println(i); //输出i的值
i++;
sum+=i; //累加i的值
} while (sum<10); //当累加和小于10时
i=10;
sum=i;
System.out.println("通过while语句实现:");