Bootstrap

while和do while的区别

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,但是具体多执行次数未知。

;