次のコードを検討してください。
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
val =+ ++i
しかし、それは 3 です。2 回目にインクリメントが行われず、i = 1
事前に にインクリメントされる理由がわかりませんi = 2
。