while
循环:条件先判断,只有条件为 true
时才会执行循环体。即使条件一开始为 false
,循环体也不会执行。
while (condition) {
// 执行代码
}
do while
循环:循环体至少会执行一次,然后再判断条件。即使条件一开始为 false
,循环体也会执行一次。
do {
// 执行代码
} while (condition);
通过一个简单的例子来比较 while
和 do while
的区别:
假设我们有一个计数器,从 1 开始,每次增加 1,直到它等于 5。我们要打印出计数器的值。
使用 while
循环:
int counter = 1;
while (counter <= 5) {
printf("%d\n", counter);
counter++;
}
解释:
- 先检查条件
counter <= 5
,如果条件为true
,才进入循环体执行。 - 如果条件一开始是
false
(例如counter = 6
),那么循环体一次都不会执行。
使用 do while
循环:
int counter = 1;
do {
printf("%d\n", counter);
counter++;
} while (counter <= 5);
解释:
- 无论条件如何,循环体至少执行一次。即使
counter
一开始是 6,仍然会先执行一次循环体,然后再判断条件。
对比:
- 在
while
循环中,如果条件一开始是false
,就不会打印任何东西。 - 在
do while
循环中,即使条件一开始是false
,循环体会先执行一次,然后再检查条件。
举个例子,假设初始值是 counter = 6
:
while
循环不会执行,因为6 <= 5
一开始就是false
。do while
循环会先打印出6
,然后才检查counter <= 5
,因为它至少执行一次。