while(i++ <= 5) { sum+=i; } 最后执行结果为21;
for(i=0;i<=5;i++) { sum +=i } 最后执行结果为15;
原因如下:
1.首先要搞清楚,在这个while循环中,i++是先赋值再运算。也就是说在while(i++ <=5)每一次都是先判断i<=5,再进行自加1。再最后一次的判断时是:
while( i++ < = 5),此时i=5,但是是先赋值再运算,就是说把当前的5赋值给判断式。执行顺序为5 <=5为真,i再i++,自加1,此时已经进入循环体了,而i此时的值为6.
在循环体里面又执行了一次 sum += i;(15+=6) ,最后sum=21;
所以进行6次"sum += i", 则为sum与6次i相加,0+1+2+3+4+5+6 = 21;
2.而for循环是先判断,再运算,最后自加。在这个程序里就是先判断"i <= 5",再运算"sum +=i",运算完最后i再自加1.最终循环了5次,也就是sum与5次i相加, 0+1+2+3+4+5 = 15; |