哪个神能否解释一下: do{ sum=sum+flag*i; i++; flag=-flag; } 里面的执行代码块具体是怎么样的一个运算过程么?求!
首先sum=0;i=1;flag=1;
循环内部运算:sum=sum+(flag)*i; i++; flag=-flag;
第一次:sum=0+(1)*1;i=1+1;flag=(-1)*1 ;
sum=1;i=2;flag=-1;
第二次:sum=1+(-1)*2;i=2+1;flag=(-1)*(-1);
sum=-1;i=3;flag=1;
第三次:sum=-1+(1)*3;i=4+1;flag=(-1)*1;
sum=-1;i=3;flag=1;
三次运算连起来:sum=1-2+3……如此类推运算到第一百次(主要是改变运算加减符号)
从上到下 先执行sum=sum+flag*i;后执行i自增;最后就是flag取相反数。。 不过你想表达do while循环吧?