不是, 只有当while循环条件不成立的情况下 后者比前者多循环一次。
其他情况是完全一样的。
do while 是循环体至少执行一次。
而while 的循环体可以执行0次
do...while循环比while循环多执行一次循环体语句。
原因如下:
do...while是先执行循环体语句,之后再进行循环条件的判断的。
while刚好相反,即先进行循环条件的判断,之后再执行循环体语句的。
举例如下:
int i=0;
int a=0;
do
{
a++;
}while(i>0);
// 执行完后,a=1
int i=0;
int a=0;
while(i>0)
{
a++;
i++;
}
// 执行完后,a=0
从上面的两个例子可以看出do...while循环确实比while循环多执行一次循环体语句。
区别在于
while语句先判断while后括号内的条件 根据条件的真假执行{}内的程序
do while 总是先执行{}的语句, 完了后再判断 while后括号内的条件,如果真就在先执行{}内的语句
多循环一次的理解是不完全正确的
如:
/////////////////////////
unsigned char x = 0;
while(x<1){
x++;
}
////////////////////////
unsigned char x = 0;
do{
x++;
}while(x<1);
////////////////////////
这两个语句条件完全正确,都是判断x<1,可是他们都只执行一次。
do while 是循环体至少执行一次while 的循环体可以执行0次及以上。
而且一般用的while,因为在执行上while基本可以包含do while
没错,因为前者是先进行判断在执行,后者是先执行再判断,凭空多了一次运行