36 lines
1.6 KiB
Java
36 lines
1.6 KiB
Java
|
/*--------------------------------------------------------------------------*/
|
||
|
/* 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+"]");
|
||
|
}
|
||
|
}
|
||
|
}
|