C语言中while和do-while循环的主要区别是?

如题所述

主要先判断还是先循环的区别。

while:先判断循环条件再执行循环。

do-while:先循环再判断循环条件。

也就是说while可能一次循环都不运行就退出了,do-while至少会执行一次循环。

例如:

while(false) do_something();   //这里先判断出循环条件为false,所以直接退出循环
do{do_something();}while(false);    //这里虽然循环条件是false,但是由于do-while是先执行循环的,所以do_something会执行一次才退出。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-06

用while语句实现循环:

while语句用来实现“当型”循环结构。其一般形式如下:

while(表达式)

         语句;

执行顺序:先判断表达式,后执行语句。也就是说当while后面的表达式为真(非零)时,就执行语句。执行完后再次返回while表达式,如果还为真(非零)就再次执行语句,然后再次返回while表达试……直到while后面的表达式为假(为零)时终止执行。看不懂没关系,我们再来看一道例题:

#include <stdio.h>    //头文件

int main()    //主函数

{

    int i,sum=0;    //定义整形i和sum的值,并把0的值赋给sum

    i=1; //把1的值赋给i

    while(i<=100)    //当i的值<=100时执行下面循环体语句。

    {

        sum=sum+i;    //sum=0+1

        i++;    //i++后此时的i不再是1了,i变成了2

    }    //然后返回while表达式,发现i的值仍然<=100所以继续往下做语句,直到i<=100为止

    printf("%d\n",sum);

}



用do...while语句实现循环:

do...while语句的特点是先执行循环体,热后判断循环条件是否成立。其一般形式为:

do 

    循环体语句;

while(表达式)

执行顺序:先执行一次指定的循环体语句,然后判别表达式。当表达式的值为真(非零)时,返回重新执行循环体语句,如此反复,直到表达式的值为假(为零)时为止,此时循环结束。下面来看一道例题:

#include <stdio.h>

int main()

{

int i,sum=0;

i=1;

do     //先做这个语句

{

sum=sum+i;

i++;

}

while(i<=100)     //再判断while后面的表达式成不成立

printf("%d\n",sum);    //如果成立返回do,继续做语句,不成立则循环结束。

}

这么一总结我们可以知道:

while语句是先判断表达式成不成立。如果成立就做表达式;如果不成立则循环结束。 do...while语句不管条件成不成立,先做一段语句。做完后再去判断表达式成不成立。如果成立返回do后的语句继续做;如果不成立则循环结束。

        那有的小朋友就会问了,这一个先判断和一个后判断有什么不一样吗,不都是要判断吗?小编在这里告诉你:while语句后的表达式如果在一开始就为假,就直接跳出循环了,而do...while语句先做语句后再跳出循环 。如果小朋友们还有什么疑惑可以在下方留言提问哦~

第2个回答  2013-09-13
主要区别就是,如果条件不满足,while的话就一次都不运行,而do-while的话最起码运行一次。
第3个回答  2013-09-13
while是“当什么的时候”的意思,就是这个语句是先要满足什么条件才执行,而后面这个语句是先就执行“do”后面的语句,执行完了再看时候满足条件,满足就继续执行,否则就停止
第4个回答  2017-07-25
while循环是先判断,再决定是否执行循环体;
do while 是先执行一遍循环体,再去判断是否进行下次循环。
假设二者的判断条件都是第一次就不满足,那么While语句就根本不会执行循环体中的语句,而do while则会执行一次。
说白了,就是一个先判断再干活(先奏后斩),一个先干活再判断(先斩后奏)。
相似回答