首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以这样声明for循环吗?

可以这样声明for循环吗?
EN

Stack Overflow用户
提问于 2013-01-10 23:35:23
回答 4查看 149关注 0票数 3

for(int i(5) ; i-->0 ; ) { //use i as iterator here }

这是不是和

for(int i=5; i>0 ; i--) ??

我试图在谷歌中找到类似的声明,但没有找到任何东西

另外,请建议更清晰的方式来声明相同的东西?

EN

回答 4

Stack Overflow用户

发布于 2013-01-10 23:37:12

不,这些是不一样的。在第一种情况下,在第一次执行循环体之前,i将会递减。

有关工作演示,请参阅http://ideone.com/AbHF3m

票数 8
EN

Stack Overflow用户

发布于 2013-01-10 23:37:54

这不一样。在第一种情况下,i的值在第一次迭代中为4,在最后一次迭代中为0。在第二种情况下,i在第一次迭代中为5,在最后一次迭代中为1

编辑

对于@Y.Ecarri:

第一种情况:

  1. i设置为i,即5 > 0
    1. Decrement i > 0i现在是循环体,具有值4
    2. Body的i完成

第二种情况:

  1. i设置为5
  2. Compare i,即具有值5
  3. Body finishes
  4. Decrement i > 0i的循环体。i现在是4
票数 4
EN

Stack Overflow用户

发布于 2013-01-10 23:38:34

不,这不一样。第一个版本比较递减前i的值,并在每次迭代之前执行递减;第二个版本比较递减后的值,并在每次迭代后执行递减。

因此,第一个遍历{4,3,2,1,0},而第二个遍历{5,4,3,2,1}

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14261494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档