int a=4; int b=5; a ^= b; // a=1, b=5 b ^= a; // a=1, b=4 a ^= b; // a=5, b=4You might think you could collapse that program like this, as you can in some C++ compilers. It may not be legitimate C++, but some compilers allow it. However, in Java it does not work. You just get a=0.
int a=4; int b=5; a ^= b ^= a ^= b;Even
int a=4; int b=5; a ^= ( b ^= ( a ^= b ) );As a general rule, avoid cascading any of the Java combo assign/compute operators such as ^= += -= *= /= %= &= |= <<= >>= >>>= or =, especially when you use the same variable both on the left and right of an assignment operator.
|
|
You can get the freshest copy of this page from: | or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror) |
| http://mindprod.com/jgloss/cascadedassignment.html | J:\mindprod\jgloss\cascadedassignment.html | |
![]() | ||
| Canadian Mind Products | ||
| mindprod.com IP:[65.110.21.43] | ||
| view Blog | Your face IP:[38.107.179.212] | |
| Feedback | You are visitor number 11. | |