很简单的一个题,但是搞不懂
int i=0;
i=i++;
System.out.println(i);
上面这段代码,为什么结果会是0?
[解决办法]
i=i++;
解释成:
tmp = i ; //tmp = 0
i++; // i = 1
i = tmp ; // i = 0
结果为0
如果 你改成 i = ++i ;
就解释成:
++i ; // i = 1
tmp = i ; // tmp = 1
i = tmp ; // i = 1
结果为1
[解决办法]
i=i++ 意思是先是右边的i赋值到左边,然后再加1。所以i的值不会变,还是0。
你如果把i++换成++i,答案就不同了。++i是先加1在赋值,所以答案是1。