Jil*_*son 1 assignment-operator post-increment java-8
int f = 1;
f = f++;
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)
post increment operator的优先级高于赋值运算符,所以我想f的值(即1)用于赋值,f增加,然后输出为2(因为f的值现在为2),但输出为1 ,但是怎么样?我哪里错了?
我的解释在下面的代码中得到了正确的答案
int f = 1;
int g = f++;
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)
在这种情况下输出为2.
在评估值之前,无法为变量赋值.因此,您必须先评估f++.并且因为f++返回1,这是分配给的值f,它会覆盖递增的值f.
您的第二个片段是一个完全不同的场景,因为您将值分配给f++另一个变量,因此f不会覆盖递增的值.
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |