大部分网上对i++和++i的区别都是这么解释的:
i++:先赋值,后自增。
++i:先自增,后赋值。
但估计会有一小部分人还是没能理解到点子上,下面来帮你好好理解一下。
public static void main(String[] args) {
int i = 0;
i = i++;
System.out.println(i);
int j = 0;
j = ++j;
System.out.println(j);
}
这段代码打印的结果的是0和1,大家对于j打印1都觉得没问题,但i打印0的话可能有的同学会觉得不对,先赋值i=0;后自增不应该为1了吗?有这种想法的同学看我用代码简单模拟一下。
public static void main(String[] args) {
int i = 0;
// i = i++;
i = firstAdd(i); //等同于i = i++;
System.out.println(i);
int j = 0;
// j = ++j;
j = lastAdd(j); //等同于j = ++j;
System.out.println(j);
}
// 模拟i++
public static int firstAdd(int i){
int temp;
temp = i; //先赋值
i = i + 1; //再自增
return temp;
}
// 模拟++1
public static int lastAdd(int i){
int temp;
i = i + 1; //先自增
temp = i; //再赋值
return temp;
}