for(int i(5) ; i-->0 ; ) { //use i as iterator here }
这是不是和
for(int i=5; i>0 ; i--) ??
我试图在谷歌中找到类似的声明,但没有找到任何东西
另外,请建议更清晰的方式来声明相同的东西?
发布于 2013-01-10 23:37:12
不,这些是不一样的。在第一种情况下,在第一次执行循环体之前,i将会递减。
有关工作演示,请参阅http://ideone.com/AbHF3m。
发布于 2013-01-10 23:37:54
这不一样。在第一种情况下,i的值在第一次迭代中为4,在最后一次迭代中为0。在第二种情况下,i在第一次迭代中为5,在最后一次迭代中为1。
编辑
对于@Y.Ecarri:
第一种情况:
i设置为i,即5 > 0i > 0。i现在是循环体,具有值4i完成第二种情况:
i设置为5i,即具有值5i > 0的i的循环体。i现在是4发布于 2013-01-10 23:38:34
不,这不一样。第一个版本比较递减前i的值,并在每次迭代之前执行递减;第二个版本比较递减后的值,并在每次迭代后执行递减。
因此,第一个遍历{4,3,2,1,0},而第二个遍历{5,4,3,2,1}。
https://stackoverflow.com/questions/14261494
复制相似问题