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); |
广告