Why output is True? Is it something based on ASSOCIATIVITY property of "==" operator?
As because of associative properties of relational operator x will increment and it become 2 and when it will compare with another x whose value is now 2...it will throw "True".
IF I AM WRONG PLEASE CORRECT ME... THANKS!
int x = 1;
//Output : True
it's probably because when ++x apply the x value change directly to +1+1=2
so he doesn't compare with another x, but with the same
++x change value of x during the execution of the code (not at the end)
Zaid Al-husseini Okay that's one really helped...but The thing I want to know is which one compiler will execute first.. "x" or "++x" ? If x then situation will be something 2==1 hence, False....So how I will decide which one will execute first...based on ASSOCIATIVITY property of relational operator..if I execute it will execute from left to right...hence it will give "TRUE"
Tushar In java Expressions are evaluated from left to right.
++x is gets the stack, it has high presidence than == so first ++x is evaluated, then now x=2, and it replaced by next value of stack variable x by 2
Next x==x takes place 2==2 return true..
[So ++x, x, x==x sequence of evaluations]
Hope this helps you..