1.表达式不同
while的表达式为:while(条件){循环体};
do while的表达式为:do{循环体}while(条件);
2.条件判断方式不同
while语句先判断条件是否满足,满足再执行循环体,而do while语句,先执行一次循环体,再判断条件是否满足,从而判断是否继续执行循环体。
3.执行次数可能不同
由于两者的判断方式不同,导致两者执行次数可能不同。具体应分为三种情况:
- 最初条件满足,则两者循环次数相同。
举例
#include<stdio.h>
#include<string.h>
int main(){
int i=10;
printf("\nwhile:");
while(i){
printf("%d ",i);
i--;
}
int j=10;
printf("\nwhile:");
do{
printf("%d ",j);
j--;
}while(j);
printf("\n");
}
- 最初条件不满足,while不执行循环体,do while执行一次循环体后仍不满足循环条件,那么do while比whiel多执行一次。
举例
#include<stdio.h>
#include<string.h>
int main(){
int i=0;
printf("\nwhile:");
while(i){
printf("%d ",i);
}
int j=0;
printf("\nwhile:");
do{
printf("%d ",j);
}while(j);
printf("\n");
}
- 最初条件不满足,while不执行循环体,do while执行一次循环体后,满足循环条件,那么do while可能比while循环多循环很多次。
举例
#include<stdio.h>
#include<string.h>
int main(){
int i=0;
printf("\nwhile:");
while(i&&i!=-10){
printf("%d ",i);
i--;
}
int j=0;
printf("\nwhile:");
do{
printf("%d ",j);
j--;
}while(j&&j!=-10);
printf("\n");
}
【总结】do while至少循环一次,而且循环体执行次数大于等于while,但是具体多执行次数未知。