Java自增(++)自减(--)运算符代码结果不符问题咨询
Java自增(++)/自减(--)运算符问题解答
1. 为何运行结果是19和20?
核心原因是你用了后置自增/自减运算符(x++/x--),这类运算符的执行逻辑是:先返回变量当前的原始值,再对变量本身进行自增/自减操作。
一步步拆解代码执行流程:
- 初始状态:
x = 19 - 执行
int inc = x++;:先把x当前的19赋值给inc,之后x自增为20 → 此时inc = 19,x = 20 - 执行
int dec = x--;:先把x当前的20赋值给dec,之后x自减为19 → 此时dec = 20,x = 19 - 最后输出inc和dec,结果自然是19和20
2. 如何修改得到预期的20和19?
要实现“先修改变量值,再赋值”的逻辑,需要用前置自增/自减运算符(++x/--x),这类运算符会先对变量进行自增/自减操作,再返回修改后的新值。
修改后的代码如下:
public class Main{ public static void main(String[] args){ int x = 19; int inc = ++x; // 先将x自增为20,再把20赋值给inc int dec = --x; // 先将x自减为19,再把19赋值给dec System.out.println(inc); System.out.println(dec); } }
对应执行流程:
- 初始状态:
x = 19 int inc = ++x;:x先自增为20,再赋值给inc →inc=20,x=20int dec = --x;:x先自减为19,再赋值给dec →dec=19,x=19- 输出结果即为预期的20和19
内容的提问来源于stack exchange,提问作者Mariin5
相关产品推荐
相关产品推荐

