int i=5, s=0;
while(i-->0) { if (i%2) s+=i; else s+=i--;}
while(i-->0) 什么意思,是不是和i>0差不多?
我懂了,没事了谢谢各位
while(i-->0) 表示当i大于0时循环,然后i进行自减
后缀--表示先使用变量,再进行变量自减
(i-->0) 就是先判断i是否大于0,然后i再自减:i=i-1
代码分析:
第一次:
int i=5, s=0;while(i-->0) //i初值为5,先判断5>0是否为真,然后i=i-1=4
{
//第一次进到循环中,i就是4
if (i%2) //判断i是否为奇数,第一次,i=4不是,走else
s+=i;
else
s+=i--; //此句相当于,s=s+i=0+4=4; i=i-1=3;
}
第二次:
{
//进到循环中,i就是2
if (i%2) //判断i是否为奇数,i=2不是,走else
s+=i;
else
s+=i--; //此句相当于,s=s+i=4+2=6; i=i-1=1;
}
第三次:
while(i-->0) //i值为1,先判断1>0是否为真,然后i=i-1=0{
//进到循环中,i就是0
if (i%2) //判断i是否为奇数,i=0不是,走else
s+=i;
else
s+=i--; //此句相当于,s=s+i=6+0=6; i=i-1=-1;
}
第四次:
所以,最终s=6 i=-2
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-12-27
判断i是否为零,然后自减……
比如,当i=5时,由于5不等于0,所以,条件成立,进入循环,此时i=4;
依次进行循环,直到i=0,此时条件不成立,退出循环体,此时i又自减依次,因此i的值为-1本回答被提问者采纳
比如,当i=5时,由于5不等于0,所以,条件成立,进入循环,此时i=4;
依次进行循环,直到i=0,此时条件不成立,退出循环体,此时i又自减依次,因此i的值为-1本回答被提问者采纳
第2个回答 2010-12-27
是i--。先使用i的值,判断i是否>0。判断之后,马上使i的值自减1.