解释在注视里面:
public class Calculate {
public static void main(String[] args) {
// x的初始值是10
int x = 10;
// x++是先计算后自增,执行这条语句的时候x++的值还是10,执行完这条语句的时候x=11,所有a = 10 + 10
int a = x + x++;
// a=20
System.out.println("a=" + a);
}
}
与下面情况对比:
public class Calculate {
public static void main(String[] args) {
// x的初始值是10
int x = 10;
// ++x是先自增后计算,执行这条语句的时候++x的值就是11,所有a = 10 + 11
int a = x + ++x;
// a=21
System.out.println("a=" + a);
}
}
a=20;因为x++是把值赋给a后才执行的。
搜索 java 运算符 优先级,看完你自然知道如何算了。