Java中i++、i–、++i、–i底层讲解 (减号加粗有点看不清,请谅解)
一、浅见理解:
1)i++ :i 后++ 就是先将 i 的值赋值给前面变量,i 自身再加1;
2)++i :i 先++ 就是先将 i 自身先加1,再把运算结果赋值给前面变量,此时打印的 i 就是加1之后的结果
总结说明:①加号在后就先赋原来的值给前面变量(前面变量要是本身i的话,那么打印i的结果就是先赋值的结果);
②加号在前就先做加法,加之后的结果再赋值;
还没明白?看这
1)i++ 就是先把没有加之前 i 的值保存在一个容器里面,再去做加法自身加1,最后再去把保存在容器里的值赋给前面变量;
2)++i 就是先让 i 自身加1,再把加之后的 i 值保存在一个容器里,最后再去把保存在容器里的值赋给前面变量;
说明:其实就是后++就先把 i 值先保存起来;先++就先加1之后再保存,最后都是去容器里面取数赋给前面的变量;
测试(1):代码里有注释,读一读
public class Test1 {
public static void main(String[] args) {
int i = 10;
int j = i++;//i是后++,先保存i(值为10)到容器,再自身加1,i值为11了,最后把容器里的值赋值给前面变量,所以打印前面变量j值为10
// 第一步 i 加1之后为11,只是保存到容器的值是10赋给了j.
int k = ++i;//上一步计算之后i=11,这步是先++,先计算(i+1=12),再把加1后的i值保存到容器中,最后从容器取出数赋给k,所有k=12,
i = --i;