{
int i = 0;
int j = 0;
j = i++;
System.out.println(j);
}
{
int i = 0;
int j = 0;
i = i++;//这里是不同点
System.out.println(i);
}
...全文
85224打赏收藏
Java i++与++i困惑
以下的两段代码为什么分析的过程不一致?也就是说,为什么i = i++ 这一段跟我们平时所说的++用法不一样呢?网上对于这道题都是用反编译去解释的,真心看着头晕,请高手通俗的解释一下 { int i = 0; int j = 0; j = i++; System.out.println(j); } { int i = 0; int j = 0; i = i++;//这里是不同点 System.out.println(i); }
{
int i = 0;
int j = 0;
j = i++;//赋给j的是i++的值为0;语句执行后i的值变为1
System.out.println(j); //输出1
}
{
int i = 0;
int j = 0;
i = i++;//赋给i的是i++的值为1;语句执行后i的值变为2
System.out.println(i); //输出2
}
int i = 0;
int j = 0;
j = i++;
System.out.println(j);
i++相当于i=i++;所以j=i++,就是先把i的值赋给j,然后i再加1,所以上题j的值是0,i的值是1
int i = 0;
int j = 0;
i = i++;
System.out.println(j);
i++相当于i=i++;所以i=i++,就是先把i的值赋给等号左边的那个i,然后i再加1,所以等号做边的值是1看的时候可以把他们看成不同的变量