日期:2014-05-17  浏览次数:20789 次

关于while和do while循环的问题!求答案
代码如下,求大神帮忙解释下结果,

            int sum2 = 0;
            int i = 0;
            do
            {
                sum2 += 1;
            } while (++i < 10);
            Console.WriteLine("Sum2={0}", sum2);

sum2=10,求原因啊do while循环为什么是10

如果相同的代码用while循环是9,这我知道,++i最大是9,i=0-8;++i=1-9 因此while循环是sum是9;


------解决方案--------------------
do是先执行循环里的代码,再比较,
while是先比较,再执行循环里的代码

对应你上面的代码就是
do先执行循环里代码,再++i,最后i与10比较;
而while,是先++i,再i与10比较,最后执行循环里的代码
所以do要多执行一次

------解决方案--------------------
 sum2 += 1;
Console.WriteLine(sum2+","+i);//输出他们的值自己看一下就明白了
------解决方案--------------------
因为do...while会先do再判断条件是否成立,比while多执行一次。
------解决方案--------------------
do...while 先do在while(先判断条件)

while先判断条件,

所以do...while 比while多执行一次