后缀概念

时间:2012-01-09 22:30:46

标签: java

  

可能重复:
  What is x after “x = x++”?

我很震惊地看到这个输出,想知道它是如何在内部工作的,请帮助我。

int i=0;
i = i++;
System.out.println(i);
i=i++;
System.out.println(i);

输出为0和0.

1 个答案:

答案 0 :(得分:1)

将其更改为

int i=0;
i++;//note the removed i =
System.out.println(i);
i++;//note the removed i =
System.out.println(i);

它将按预期工作

请参阅Oracle documentation及其demo code,并引用最相关的部分

  

可以在操作数之前(前缀)或之后(后缀)应用递增/递减运算符。代码结果++;和++结果;两个结果都会以一个增加结果。唯一的区别是前缀版本(++结果)评估为增量值,而后缀版本(结果++)评估为原始值。如果您只是执行简单的增量/减量,那么选择哪个版本并不重要。但是,如果您在较大的表达式中使用此运算符,则您选择的运算符可能会产生显着差异。