tldr;
虽然var和var都会将它们应用到的变量增加,但var返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值。
进一步说明
当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返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值。
当在for循环中使用时,两者之间没有差别,因为变量的增量不构成较大语句的一部分。它可能不会以这种方式出现,因为在源文件的同一行上有其他代码。但如果你仔细看,你会看到有一个;紧接在增量之前和之后没有什么,所以增量运算符不形成较大语句的一部分。