在for for循环中更新语句

时间:2017-10-05 14:03:19

标签: c++

这里回答了类似的问题[https://stackoverflow.com/a/13421435/3276830]。作者说

  

以下代码

 for (i=0;i<5;i++);
 {
     printf("hello\n");
 }
  

解释如下:

     
      
  • 重复五次for (i=0;i<5;i++)
  •   
  • ......什么都不做(分号)
  •   
  • 为局部变量{
  • 打开一个新范围   
  • ...打印&#34;你好&#34;
  •   
  • 关闭范围}
  •   

但是,对于以下for循环

int i = 0;
for(;i++;cout<<i<<" ");
cout<<i<<" ";

我得到的输出只是1,但我预计它会是123456.....

编辑,我知道前缀和后缀操作之间的区别。但是,我确实错过了第一次循环运行它是0。

2 个答案:

答案 0 :(得分:3)

int i = 0;
for(;i++;cout<<i<<" ");

此循环永远不会执行,因为i0,因此i++评估为0之前>增加值) 。请改为++i

答案 1 :(得分:1)

AlanV.Oppenh

看起来更审美 :)正确无论前缀或后缀都能正常工作