java奇怪的增量语法

标签 java syntax increment

所以我一直被教导,在Java中,在表达式中的变量名后面使用增量运算符将执行表达式,然后递增值,并在表达式中的变量名之前使用运算符将​​执行之前的增量评价。像这样:

int x = 0;
int y = x++;

执行后 y 应为 0,x 应为 1。在本例中

int x = 0;
int y = ++x;

应为 x = 1 且 y = 1。

遵循相同的逻辑,以下...

int x = 0;
int y = 0;
x = y++ - y++;

应该输出 0 作为 x,2 作为 y,因为 0 - 0 = 0。 然而输出是

x = -1
y = 2

这是为什么?

编辑:y 的值并不重要。 x 将始终等于 -1,y 将(最终)等于 y + 2。

最佳答案

int x = 0;
int y = 0;
x = y++ - y++;
x = (0) - (1)
y = 1 ---> 2 // after ++

所以x = -1y = 2

关于java奇怪的增量语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149812/

相关文章:

java - java中为什么有这么多日期和时间处理函数

java - JPA:使用计数直接将集合大小映射到属性?

java - 当在与请求对象关联的空对象上调用方法时,JSTL 中没有 NullPointerException。为什么?

java - 如何在 openssl 上避免 jruby 的错误文件描述符?

syntax - 如何使用crontab自动执行反向隧道:语法错误

java - 用括号在Java中分配变量

syntax - 如何定义rdfs :range target in a list of possibilities?

c - 尝试创建一个计算值表,从初始值到最终值增加给定数字

Mysql在循环中按变量递增

mysql - 在我的插入请求中增加我的 id