Java前后递增

pil*_*boy 4 java loops pre-increment post-increment

我无法理解以下代码块.

   int count = 0;
   for (int i = 0; i < 3; i++){
       count += (count++);
       System.out.println("count = " + count);
       System.out.println("i = " + i);
   }
Run Code Online (Sandbox Code Playgroud)

我的理解是循环运行三次以执行以下操作

count = count + count
count = 1 + count
Run Code Online (Sandbox Code Playgroud)

这将转换为以下内容,因为count最初为0:

count = 0 + 0
count = 1 + 0 = 1
count = 1 + 1 = 2
count = 1 + 2 = 3
count = 3 + 3 = 6
count = 6 + 1 = 7
Run Code Online (Sandbox Code Playgroud)

输出在下面,计数打印为0.

    count = 0
    i = 0
    count = 0
    i = 1
    count = 0
    i = 2
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下吗?谢谢

Kal*_*Kal 7

令人困惑的部分是这条线 -

count+ = (count++);
Run Code Online (Sandbox Code Playgroud)

这有效地做到了这一点 -

count = count + ( count++ );
Run Code Online (Sandbox Code Playgroud)

因此,(count++)等式的值为0,后增量发生在之后,但随后count被赋予0,因此后增量被丢弃.

这发生了3次.