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 to rely on evaluation order of subexpression,because it's not guaranteed to be any order at all.
So this code would be in error,and the boolean yielded by the expression in the condition is not guaranteed to be true ( y could be incremented before it is evaluated in the first equality test,for example ).
Since I read this code in a Java certification book,I assume that this isn't the case with Java..I mean, am I guaranteed that order of evaluation in Java is always left to right? So the above expression should always yield true.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…