public class ArithmeticOperator{
public static void main(String[] agrs){
System.out.println("-----------------");
int i = 1;
i = i++; // 创建了一个中间变量 temp = i; i = i + 1;i = temp
System.out.println(i);
int j = 1;
j = ++j; // j = j + 1, temp = j, j = temp
System.out.println(j);
}
}
刚看到这个题目时,我的思路是,i 先 = 1,再把 1 赋值给 i i 再 ++ 后 = 2,所以第一个输出的为2。
但实际过程是借用了一个中间变量先保存了 i 的值
第二题部分中也是借用了中间变量存放 j 的值
但是这里涉及到了前置++ 和 后置 ++的区别
后置 ++ : i 先使用(先保存在了中间变量中)再++
前置 ++ : j 先 ++ (变为2),再保存在中间变量。