小编Dry*_*ter的帖子

x + = ++ x相当于x = 2x + 1:为什么?

这个问题只是好奇心:我想知道一些人int x在行之后会有什么价值x += ++x 所以我试过了:

int x=10;
x+=++x;
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

它打印出来:

21
Run Code Online (Sandbox Code Playgroud)

在使用其他值进行一些测试后,它似乎等于x = 2x + 1.为什么?此行是否由编译器解释为字节操作?(顺便说一下,x + = x ++似乎等于x = 2x).

我不认为这是我在项目中使用的东西,但我很想知道为什么我得到这个结果.

谢谢你的任何解释或提示

编辑:首先,感谢您的回答

我知道+=操作员的工作方式,以及x++++x,但由于某种原因,(完全逻辑和明显的)结果对我来说似乎很奇怪我应该已经考虑过了,抱歉你的时间!

java

3
推荐指数
1
解决办法
228
查看次数

标签 统计

java ×1