试图理解为什么x ++在打印后计算,而x = x + 1在打印之前计算:
int x = 3;
System.out.println("Ans: " + (x++));
System.out.println("Ans: " + (x=x+1));
Ans: 3
Ans: 5
答案 0 :(得分:6)
因为它是如何定义的。 x++
是后增量,如果您使用++x
它是预增量,例如x=x+1
。
Java documentation(强调我的)中的更多信息:
可以在操作数之前(前缀)或之后(后缀)应用递增/递减运算符。代码
result++;
和++result;
都将以结果递增1结束。唯一的区别是前缀版本(++result
)评估为增量值,而后缀版本(result++
)评估为原始值。如果您只是执行简单的增量/减量,那么选择哪个版本并不重要。 但是如果您在较大的表达式中使用此运算符,那么您选择的运算符可能会产生显着差异。