/*--------------------------------------------------------------------------*/ /* file_name : err5.java */ /* : */ /* Cause : Evaluation order of method argument is not correct. */ /* : */ /* Message : NG */ /* : a:[1]-->[2] */ /* : b:[3]-->[3] */ /* : c:[2]-->[2] */ /* : */ /* Note : JLS 15.6 Evaluation Order */ /* S15.6.4 Argument Lists are Evaluated Left-to-Right(p309) */ /* [Each argument expression appears to be fully evaluated */ /* before any part of any argument expression to its right.] */ /*--------------------------------------------------------------------------*/ public class err5 { public static void main(String[] args) { int x = 1; err5 obj = new err5(); obj.print(x, x = 3, x = 2); } void print(int a, int b, int c) { if ( a == 1 && b == 3 && c == 2 ) { System.out.println("OK"); } else { System.out.println("NG"); System.out.println("a:[1]-->["+a+"]"); System.out.println("b:[3]-->["+b+"]"); System.out.println("c:[2]-->["+c+"]"); } } }