首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于do while疑惑解决思路

2012-04-03 
关于do while疑惑直接上两个简单的程序:1、C/C++ code#include STDIO.Hint main(){int i,sum0do{for(i

关于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已经不成立

热点排行