【问题标题】:Post increment in for loop in java [duplicate]在java中的for循环中发布增量[重复]
【发布时间】:2016-12-27 00:52:26
【问题描述】:
int num=0

for(int i=0;i<5;i++)
{
    num = num++;
    system.out.println(num);
}

我对上述程序的输出有点困惑。它在输出中打印五次 0。为什么num 变量没有在循环中递增?

【问题讨论】:

  • 你的程序中没有打印语句。
  • 这个程序不打印任何东西
  • @Renzo,@Amit .. 我忘了添加打印语句。现在它在那里。

标签: java post-increment


【解决方案1】:

您应该知道num++++num 之间的区别。在您的情况下,首先将num 设置为0。当您说num = num++; 时,它首先将0 分配给num(左侧),然后应用++。等式的正确部分的作用真的无关紧要......所以这就是你有 5 个 0 的原因。

【讨论】:

    【解决方案2】:

    您需要使用 ++num 递增。例如:

    int num=0;
    
    for(int i=0;i<5;i++)
    {
        num = ++num;
    }
    
    System.out.println(num);
    

    输出:

    5
    

    虽然您不需要每次都重新分配它,但单独使用 num++ 将是正确的方法。

    查看上一个答案:Difference between ++var and var++

    【讨论】:

      【解决方案3】:

      num++ 将返回num 的当前值(即0),然后递增num。但是,由于您将其重新分配给 num,因此您会用之前的值覆盖增量,因此 num 在整个程序中仍然是 0

      【讨论】:

      • @MouseEvent 我以为我做到了。您想详细说明什么?
      • 我会说,一步一步地展示num会发生什么。但也许链接的副本就足够了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2013-11-25
      • 2019-09-14
      • 2020-01-21
      相关资源
      最近更新 更多