新手 请教一个简单问题
public class Person
{
public static void main(String[] args)
{
int i=0;
i=i++;
System.out.println("i="+i);
}
}
输出i=0
------解决方案--------------------
1楼解释的有点问题,问题还是在 i=i++; 上。
主要问题是 i++ 表达式被运算时是先取得 i 的值,然后再运行++ 运算。
编译后执行的顺序是:
1、计算表达式(i++)的值,其实也就是:i,那么算出来就是 0
2、执行:i++运算
3、因为右边表达式没内容了,所以右边最终的取值就是 0
3、执行赋值 i = 等号右边的值,那么也就是 0 了
楼主如果没搞懂的话,请把:
i=i++;
修改为:
i=i++ + i++;
结果是“1”,再想想应该就能理解了。