站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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就怎么规定的


↑返回目录
前一篇: 请问什么是字符的宽度与高度?
后一篇: java的动态二维用什么?