问题
Can somebody explain why output of the code below is 1.
int i = 1;
i=i--;
System.out.println(i); // 1
回答1:
i--
does the following steps:
- return the value of
i
- decrement
i
by 1
so the statement i = i--
does the following:
i
is returned (the statement now equalsi = 1
)i
is decremented (i is now 0)- the statement (the assignment) is now done (
i = 1
)
In the end i
is 1
To make it a bit more clear you could say the line i = i--;
does pretty much the same as this code:
int j = i;
i = i-1;
i = j;
来源:https://stackoverflow.com/questions/35132767/decrement-and-assignment-operator-in-java