自增问题
先看一段代码
public class SelfAddDemo {public static void main(String[] args) {int i = 1;i = i++;int j = i++;int k = i + ++i * i++;System.out.println("i:" + i);System.out.println("j:" + j);System.out.println("k:" + k);}}
看一下运行结果
i:4j:1k:11
分析问题
int i = 1将i赋值为1i = i++这段代码其实原理就相当于i = i,i++是先赋值,再计算j = i++和上面一样,相当于j=i,当然,这里取值为1- i i
k = i +这里注意空格,由于上面i++,这里方法入栈时i=2, 看等号右边,第一个i+入栈时 i=2, 后面ii这里, i先计算,此时为3,i也为3;后面i其实就是i=i=3,因此最后计算的算式为2+3*3=11
