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.
This page is posted |
http://mindprod.com/jgloss/cascadedassignment.html | |
Optional Replicator mirror
|
J:\mindprod\jgloss\cascadedassignment.html | |
Please read the feedback from other visitors,
or send your own feedback about the site. Contact Roedy. Please feel free to link to this page without explicit permission. | ||
Canadian
Mind
Products
IP:[65.110.21.43] Your face IP:[18.216.99.18] |
| |
Feedback |
You are visitor number | |