C/C++中do…while循环与while循环的比较


我们将了解C或C++中do-while循环和while循环的基本区别。

C语言编程中的while循环会重复执行目标语句,直到给定条件为真为止。语法如下所示。

while(condition) {
   statement(s);
}

这里,statement(s)可以是单个语句或语句块。条件可以是任何表达式,任何非零值都表示真。循环在条件为真的情况下迭代。

当条件变为假时,程序控制将传递到循环后紧跟的语句。

示例

#include <stdio.h>
int main () {
   int a = 10; // Local variable declaration:
   do { // do loop execution
      printf("value of a: %d\n", a);
      a = a + 1;
   } while( a < 20 );
   return 0;
}

输出

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

现在让我们看看do-while循环。

与for循环和while循环不同,for循环和while循环在循环顶部测试循环条件,而do...while循环在循环底部检查其条件。

do...while循环类似于while循环,不同之处在于do...while循环保证至少执行一次。

do {
   statement(s);
}
while( condition );

请注意,条件表达式出现在循环的末尾,因此循环中的语句(s)会在测试条件之前执行一次。

如果条件为真,则控制流跳转回do,并且循环中的语句(s)再次执行。此过程重复,直到给定条件变为假。

示例

#include <stdio.h>
int main () {
   /* local variable definition */
   int a = 10;
   /* while loop execution */
   while( a < 20 ) {
      printf("value of a: %d\n", a);
      a++;
   }
   return 0;
}

输出

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

因此,差异总结在下表中:

while循环do-while循环
这是入口控制循环。它在进入循环之前检查条件这是出口控制循环。在退出循环时检查条件
while循环可能运行零次或多次do-while循环可能运行一次以上,但至少运行一次。
测试条件的变量必须在进入循环之前初始化循环条件的变量也可以在循环中初始化。
while(condition){
   //statement
}
do{
   //statement
}while(condition);

更新于:2019年7月30日

7K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告