1.用实际的代码来解析每个知识点是很好的学习方法

🔷实践是检验真理的唯一标准 (理论+实践)

//面试题:

public class ArithmeticOperatorExercise01 {

public static void main(String[] args) {

// 1.面试题

//问:结果是多少?为什么?

//int i = 1;

//i= i++;

//System.out.println(i); // 1

// i++ 为后+,先赋值,再自增。(1)temp=i (2)i=i+1 (3) i=temp

/*

在 Java 里,i = i++; 这行代码的执行过程如下:

先把 i 的当前值(也就是 1)存储在一个临时变量里。

接着 i 自增 1,此时 i 的值变为 2。

最后把临时变量的值(即 1)赋给 i,所以 i 的值又变回 1。

*/

//以下代码 为模拟临时变量来辅助理解

/*

int i = 1;

// 模拟临时变量

int temp = i;

// 自增操作(i++ 单独写 等价于i = i + 1)

i = i + 1;

// 把临时变量的值赋给 i

i = temp;

System.out.println(i);

*/

// 2.面试题

//int i = 1;

//i= ++i;

//System.out.println(i); // 2

// ++i 为前+,先自增,后赋值 => (1)i = i + 1;(2)temp = i;(3)i=temp;

// 自增,自减练习,看看输出什么了?

int i1 = 10;

int i2 = 20;

int i = i1++; // 后加 (1)10=temp=i1;(2)i1=i1+1=11(3)10=i=temp;

System.out.println("i=" + i); //i=10

System.out.println("i2=" + i2); // i2=20

i = --i2; //前减 (1)i2=i2-1 (2)19=temp=i2(3)19=i=temp

System.out.println("i=" + i);//i=19

System.out.println("i2=" +i2);//i2=19

}

}