tldr;
尽管
var++和
++var都会使它们所应用
var++的变量递增,但是by
++var所返回的结果是递增之前的变量值,而by
所返回的结果就是应用递增之后的变量值。
进一步说明
当
++var或
var++形成完整的语句时(如您的示例),两者之间没有区别。例如以下
int x = 6;++x;assert x == 7;
等同于
int x = 6;x++;assert x == 7;
但是,当
++var或
var++用作较大语句的一部分时,两者可能不相等。例如,以下断言通过
int x = 6;assert ++x == 7;
而这一失败
int x = 6;assert x++ == 7;
尽管var++
和++var
都会使它们所应用var++
的变量递增,但是by ++var
所返回的结果是递增之前的变量值,而by
所返回的结果就是应用递增之后的变量值。
在
for循环中使用时,两者之间没有区别,因为变量的增加不构成较大语句的一部分。它可能不会这样显示,因为源文件的同一行上还有其他代码。但是,如果仔细观察,您会发现
;在增量之前紧接一个,之后没有任何东西,因此增量运算符不构成较大语句的一部分。



