自增问题
先看一段代码
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:4
j:1
k: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