C++ do/while 循环

do/while 循环

do/while 循环是 while 循环的一种变体。

这种循环会在检查条件是否为真之前先执行一次代码块,然后只要条件为真,就会重复循环。

语法

do {
  // 需要执行的代码块 
}
while (condition);

注意:while 条件后面的分号 ; 是必需的!

Do/While 示例

下面的例子使用了 do/while 循环。即使条件为假,循环也至少会执行一次,因为在测试条件之前已经执行了代码块:

实例

int i = 0;
do {
  cout << i << "\n";
  i++;
}
while (i < 5);

亲自试一试

注意:不要忘记增加条件中使用的变量 (i++),否则循环将永远不会结束!

条件从一开始就为假

在上面的例子中,条件 i < 5 一开始为真,所以循环执行了多次。但如果条件从一开始就为呢?

在下面的例子中,变量 i10 开始,因此条件 i < 5 立即为假——但 do/while 循环仍然运行一次:

实例

int i = 10;
do {
  cout << "i is " << i << "\n";
  i++;
} while (i < 5);

亲自试一试

总结

即使条件已经为假,do/while 循环也总是至少运行一次。这与常规的 while 循环不同,后者如果条件一开始为假,则会完全跳过循环。

这种行为使得 do/while 在您想确保某件事至少发生一次时非常有用,例如显示一条消息或询问用户输入。

实际示例:用户输入

此例不断要求用户输入一个正数。当用户输入 0 或负数时,循环停止:

实例

int number;
do {
  cout << "请输入一个正数:";
  cin >> number;
} while (number > 0);

亲自试一试