考虑这段代码:
long val = 0;
for(int i = 0; i < 2; val++)
val =+ ++i;
System.out.println(val);
到底是为什么val = 3
?
我会这样计算:
val i
0 0 i < 2 = true;
0 0 ++i;
0 1 val =+ 1;
1 1 (end of for loop) val++;
2 1 i < 2 = true;
2 1 ++i;
2 2 val =+ 2;
4 2 (end of for loop) val++;
5 2 i < 2 = false;
Output: 5
但它是 3。我不明白为什么val =+ ++i
第二次没有完成增量,i = 1
并且预增量到i = 2
.