乘法场景中前/后增量运算符的行为

use*_*024 4 java

可能重复:
java中的x ++和++ x之间有区别吗?

有谁能解释一下这些陈述后面发生了什么?

int x=5;
 System.out.println((x++)*x); //Gives output as 30




int x=5;
 System.out.println((++x)*x); //Gives output as 36.
Run Code Online (Sandbox Code Playgroud)

ior*_*vic 7

int x=5;
 System.out.println((x++)*x); //Gives output as 30
Run Code Online (Sandbox Code Playgroud)

首先将x(x = 5)作为操作数.然后它增加到6,这是第二个操作数.

int x=5;
 System.out.println((++x)*x); //Gives output as 36.
Run Code Online (Sandbox Code Playgroud)

首先将x递增1(x = 6),然后乘以x => 6*6 = 36

  • 根本原因是乘法运算从左到右进行评估.如果不是这样,那么结果会有所不同. (2认同)