当前页面: 开发资料首页 → J2SE 专题 → 帮忙看下...
帮忙看下...
摘要: 帮忙看下...
public class Test
{
public static void main(String []args)
{
int i = 0;
i = i++;
System.out.println(i);
}
}
为什么i的值还是0啊,帮忙解释下....
++i与 ++i的区别 看看课本吧
是的书上有的 你试下++i
i=i++ 是不是可以看成 i=i=i+1
我总觉得i在打印输出前自增了一次
我知道i++是先赋值再自增 ++i是先自增再赋值
这个题我怎么还是觉得打印的是1.......
这句话可以分解成:
i=i;
i++;
当然是0了
如果你要得到1的话,就应该是:
i=++i;
这是= ++ 这些运算符的优先级问题,你查阅一下java语言规范就可以清楚了
运算符++的优先级大于=,
i++的结果是 值
i=i++,先计算i++,
1.先把的值0存入临时地址 (i)
2.进行++运算,1的值赋给i (i++)
3.把存入临时地址的值0,再次赋给i (i=i++ )相当于先用再计算的效果
结果i的值就是0了
体会下面代码过程:
int i = 0;
i = i++;//结果i=0;
int j = i++;//把i=0的值先给j,然后i自加
System.out.println(i);//i=1
System.out.println (j);//j=0
如果实在不理解,就硬记吧!Java就怎么规定的