读书人

关于do while疑惑解决思路

发布时间: 2012-04-03 12:38:19 作者: rapoo

关于do while疑惑
直接上两个简单的程序:
1、

C/C++ code
#include <STDIO.H>int main(){    int i,sum=0;    do     {        for(i=0;i<10;i+=3)            sum+=i;    } while (sum<6);    printf("sum=%d\n",sum);}


该程序实际只执行了for循环,while不起到作用。输出sum=18。
2、
C/C++ code
#include <STDIO.H>int main(){    int i=0;    int sum=0;    do     {        i+=3;        sum+=i;    } while (sum<6);    printf("sum=%d\n",sum);}

该程序while循环就起作用了。输出sum=9。

问题:为什么第一个程序while没起到限制的作用呢-_-
新手请指教!

[解决办法]
第一个代码里面的i已经一直加到10了。。z这时候的sum肯定>6了。。然后再判断while(sum<6)就没意义了。。
[解决办法]
这么解释吧,DO是先执行你应该知道,然后执行循环的时候第一次SUM=3,但是你记住这时候他FOR循环没结束,他继续判断I的条件没满足就继续执行FOR循环体,知道FOR循环完了,这时候SUM=18了,然后继续执行下去,发现SUM<6已经不成立

读书人网 >C语言

热点推荐