java递增变量
我理解增量后和增量前的区别,但我不理解这一点:
int b = 1;
b = b++;
System.out.println(b); // --> 1
为什么要打印1?b得到b++的值(即1)后,b不是增加了吗
int x = 1;
b = x++;
System.out.println(b); // --> 1
System.out.println(x); // --> 2
这是我所期望的行为。在两边使用相同的变量(b=b++)有什么不同
你可以在下面搜索框中键入要查询的问题!
我理解增量后和增量前的区别,但我不理解这一点:
int b = 1;
b = b++;
System.out.println(b); // --> 1
为什么要打印1?b得到b++的值(即1)后,b不是增加了吗
int x = 1;
b = x++;
System.out.println(b); // --> 1
System.out.println(x); // --> 2
这是我所期望的行为。在两边使用相同的变量(b=b++)有什么不同
# 1 楼答案
你应该从右向左读:
b++
将b增加到2,并返回原始值1的副本b =
将在其右侧接收值,即b++返回的1# 2 楼答案
因为评估的顺序。在语句
b = b++;
中,首先完全计算右侧。这意味着b
的值从1变为2,表达式的结果是1(旧值)。然后执行赋值,将b
再次改写为1更明确地说,第一个示例在行为上相当于以下代码: