我很震惊地看到这个输出,想知道它是如何在内部工作的,请帮助我。
int i=0;
i = i++;
System.out.println(i);
i=i++;
System.out.println(i);
输出为0和0.
答案 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,并引用最相关的部分
可以在操作数之前(前缀)或之后(后缀)应用递增/递减运算符。代码结果++;和++结果;两个结果都会以一个增加结果。唯一的区别是前缀版本(++结果)评估为增量值,而后缀版本(结果++)评估为原始值。如果您只是执行简单的增量/减量,那么选择哪个版本并不重要。但是,如果您在较大的表达式中使用此运算符,则您选择的运算符可能会产生显着差异。