do…while循环语句与while循环语句类似。它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do…while循环语句则先执行一次循环后,再判断条件是否成立。也就是说do…while循环语句中大括号中的程序段至少要被执行一次。
语法:
do
{
执行语句
}
while(条件表达式);
说明:do...while语句与while语句的一个明显的区别是do…while语句在结尾处多了一个分号(;)。
根据do…while循环语句的语法特点总结出do…while循环语句的执行过程如图1所示。
图1 do…while循环语句的执行过程
do-while语句的执行步骤为:
第一步:执行循环体中的语句;
第二部:判断条件表达式的值;如果该值为true,就跳转到第一步。否则退出循环体,继续执行程序的其它代码。
例 使用Do-While循环求100以内所有奇数的和。
public class OddNumberForDoWhile {
public static void main(String[] args) {
int num = 1; // 定义循环控制变量
int sum = 0; // 定义总和变量
do {
sum += num; // 等价于sum=sum+num;
num += 2; // 等价于num=num+2;
} while (num <= 100);
System.out.println("100以内所有奇数的和是:" + sum);
}
}
运行结果如图4.19所示。
图1 实例运行结果
例 在项目中创建类Cycle,在主方法中编写如下代码,通过本实例可看出while语句与do…while语句的区别。
public class WhilePK {
public static void main(String[] args) {
// While循环
int num1 = 50;
while (num1 < 50) {
System.out.println("While循环被执行了");
num1++;
}
// Do-While循环
int num2 = 50;
do {
System.out.println("Do-While循环被执行了");
} while (num2 < 50);
}
}
运行结果如图2所示。
图2 运行结果