自增的面试题
i = 3;
i = i++;
system.out.print(i);
输出
i= 3;
为什么?说明详细的内部原理.
------解决方案--------------------++i和i++的区别:++i是 i+1 完成之后 i才参与运算,i++是i先参与运算,完了再i+1
这里是i=i++,是 i参与运算之后再加1,所以结果就是3咯
------解决方案--------------------对于java中的++i和i++要注意一下几点。
情况一:你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。 例如:
i=5;++i和i++ 这两个动作完成后i自身的值都变成6。
情况二: 对于他赋值给的那个变量就不一样了。 例如:
i=5; a = ++i,这句执行完后a = 6,当然i=6;
a = i++,这句执行完后a = 5,i=6;
对于你的例子而言,相当于情况二。理解的话对于i = i++你可以理解先赋值再++,所以你例子中system.out.print(i);输出的i相当于情况二中的a.