I have the following snippet of code:
int x=2,y=3;
if ( (y == x++) | (x < ++y) )
// rest of code
I know that in C++ you\'re taught not t
Yes, it's guaranteed to be executed from left to right - or at least, act as if it is. This is defined in JLS 15.7:
The Java programming language guarantees that the operands of operators appear to be evaluated in a specific evaluation order, namely, from left to right.
The first operand of the |
operator will evaluate 3 == 2, and yield false, but the second operand will evaluate 3 < 4, and yield true.
Having said that, I would definitely avoid code that requires that much careful reading...