final int a=5;
System.out.println(a+1)
打印6,而System.out.println(a++)
或a=a+1
然后s.o.p(a)
会给出错误。
为什么不能更改最终值,为什么会打印6?
答案 0 :(得分:1)
a++
和a=a+1
都为a
分配了一个新值。
a+1
不会:它的求值仅比a
中的值大1。
评估陈述:
System.out.println(a);
System.out.println(a+1);
System.out.println(a);
将显示a
的值在前后都相同。对中间语句中的a++
或a=a+1
进行同样的操作(显然使a
首先是非最终的)将显示a
已更改。
这不应该比System.out.println(5+1)
打印6更令人惊讶,同时保持5
和1
的值不变。
答案 1 :(得分:0)
因为您从未修改示例中的a
。您打印a+1
的结果。如果之后打印,您会发现它仍然是5
。
基本上是
int a = 5;
int b = a+1;
System.out.println(b); // prints 6
System.out.println(a); // still prints 5