currently I am preparing for OCAJP exam, I got a similar question following like this, the explanation which is given is not satisfactory. problem:
// some code
int a=2;
int c=6;
int v=a+c*(a=3);
System.out.println(v);
Why v is printed as 20, not 21? as I know (*) operator will evaluates first.but here it is evaluates from left to right rule. also (a=3) is in parenthesis,so anyhow it should evaluates first.