Java技术疑问:为何变量c的值为8而非9?
为什么变量c的值是8而不是9?
这完全是Java里**后缀自增运算符(b++)**的特性导致的,拆解代码执行步骤就能明白:
- 第一步:初始化
int a = 5, b = 3;,此时a=5,b=3。 - 第二步:
System.out.println(a + b);输出5+3=8。 - 第三步:
int c = a + b++;这里的b++是后缀自增,规则是先使用变量当前的值参与运算,运算完成后再把变量的值加1。所以这行代码实际执行顺序是:- 用当前b的取值3,和a的5相加,得到8,赋值给c。
- 运算结束后,b的值才从3变成4。
- 第四步:
b++;这行是单独的自增,b从4变成5。 - 第五步:
System.out.println(a + b);输出5+5=10。 - 最后格式化输出:
a=5, b=5, c=8。
如果想让c的值变成9,你需要把b++改成前缀自增运算符(++b),前缀自增会先把变量的值加1,再参与运算,那样int c = a + ++b;就会用b加1后的4和a相加,得到9赋值给c。
内容的提问来源于stack exchange,提问作者user21950782
相关产品推荐
相关产品推荐

