i++ 和 ++i 区别在于是先赋值还是先自身加1,具体看下面的例子
int i = 0;
Log.e(TAG, "i = " + i++);
Log.e(TAG, "i = " + i);
Log.e(TAG, "i = " + ++i);
输出结果
i = 0
i = 1
i = 2
问题
- 为什么第一个 i++ 的输出结果是0呢?
答:i++ 是先赋值再自身加1等价于 j = i++,先把值赋给了 j 再自身加1,也就是第二条的输出结果会是1 - 为什么第三条的输出结果是2呢?
答:++i 是先自身加1再赋值等价于 j = ++i,先自身加1再把值赋给了 j