关于do while疑惑解决思路
关于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已经不成立