複合代入演算子とJavaの代入演算子を理解するのに問題があります。誰かが私にどのようにこれらの2つの演算子作品を説明することはできますか? (私は、一時変数を使用して作業を説明する本当に良いサンプルコードを見つけましたが、悲しいことに私はそれを失ってしまいました)。すべてのケースでは、割り当てはが右側に発生する可能性があり任意の増分を上書きkにすることをJavaコンパウンド代入演算子と代入演算子
int k = 12;
k += k++;
System.out.println(k); // 24 -- why not (12+12)++ == 25?
k = 12;
k += ++k;
System.out.println(k); // 25 -- why not (1+12)+(1+12) == 26?
k = 12;
k = k + k++;
System.out.println(k); // 24 -- why not 25? (12+12)++?
k = 12;
k = k++ + k;
System.out.println(k); // 25 -- why not 24 like the previous one?
k = 12;
k = k + ++k;
System.out.println(k); // 25 -- OK 12+(1+12)
k = 12;
k = ++k + k;
System.out.println(k); // 26 -- why?
ロジックの基礎は、++ kはメイン操作の前に実行され、k ++ではメイン操作が最初に実行されます。 –