简单来说
x = i ++; //先让x变成i的值1,再让i加1
x = ++i; //先让i加1, 再让x变成i的值1
案例解析
int i =1;
int x=i++;
System.out.println("i="+i);
System.out.println("x="+x);
结果
i=2
x=1
int i =1;
int x=++i;
System.out.println("i="+i);
System.out.println("x="+x);
结果
i=2
x=2
int i =1;
i=i++* ++i
System.out.println("i="+i);
首先拿到i=1
i= i + i++* ++i;按优先级进行运算,再从左到右运算
所以先算i++
因为是i++是赋值在运算,所以变成i= i + (1)* ++i;
再计算++i
因为先加后赋值(i++时i已经变成2)所以++i为3,i= i + 1* 3;
结果
i=3
int i =1;
i= i + i++* ++i;
System.out.println("i="+i);
// 首先拿到i=1
// i= i + i++* ++i;按优先级进行运算,再从左到右运算
// 所以先算i++
// 因为是i++是赋值在运算,所以变成i= i + (1)* ++i;
// 再计算++i
// 因为先加后赋值(i++时i已经变成2)所以++i为3,i= i + 1* 3;
结果
i=4
过程解析
首先拿到i=1
i= i + i++* ++i;按优先级进行运算,再从左到右运算
所以先算i++
因为是i++是赋值在运算,所以变成i= i + (1)* ++i;
再计算++i
因为先加后赋值(i++时i已经变成2)所以++i为3,i= i + 1* 3;
i= i+ 3;
i在一开始时为1,所以
i=1+3=4