In method or class scope, the line below compiles (with warning):
int x = x = 1;
In class scope, where variables get their default valu
It's roughly equivalent to:
int x;
x = 1;
x = 1;
Firstly, int =
is always equivalent to
int ;
= ;
In this case, your expression is x = 1
, which is also a statement. x = 1
is a valid statement, since the var x
has already been declared. It is also an expression with the value 1, which is then assigned to x
again.