//代码
{
int i = 0;
i = i++;
}
//代码解释
i++ 是一个表达式,是有返回值的,它的返回值就是 i 自加前的值,Java对自加是这样处理的:首先把 i 的值(注意是值,不是引用)拷贝到一个临时变量区,然后对 i 变量加1,最后返回临时变量区的值。程序第一次循环时的详细处理步骤如下:
步骤1 JVM把 i 值(其值是0)拷贝到临时变量区。
步骤2 i 值加1,这时候 i 的值是1。
步骤3 返回临时变量区的值,注意这个值是0,没修改过。
步骤4 返回值赋值给 i ,此时 i 值被重置成0。