有人可以向我解释以下每个小程序的结果吗?:
public static void main(String[] args) {
int a = 10;
a = a++;
System.out.println(a);
}
结果是:10
为什么不是 11,因为 a 应该在分配后增加?这是因为它涉及到操作符的左右不同的变量 = 吗?
下一个:
public static void main(String[] args) {
int a = 10;
a = ++a;
System.out.println(a);
}
结果是:11
可以理解,但编译器会显示警告:“对变量 a 的赋值无效”。结果不同意。
更新:
我没有修改我原来的问题,但我添加了这个评论来澄清现在我明白了警告的含义。也就是说,即使没有赋值(通过简单的语句 ++a),结果也是相同的(11)。