提问者:小点点

为什么这个后缀一元运算符不像预期的那样工作? [副本]


我很难理解Java语中的后缀一元运算符。 我理解前缀一元运算符,但不理解后缀。 这里我举了两个例子:

//Case #1
int l = 0;
l = l++;
System.out.println(l);

//Case #2
int y = 0;
y++;
System.out.println(y);

输出为:

0
1

为什么不像第二种情况那样输出1?

l=l++;将首先将0赋值给l,然后将其递增。 当它击中sout时,l应该被递增,1应该被打印出来。

我不明白什么?


共1个答案

匿名用户

在第一个示例中,L是递增的,但在此之前,您将旧值赋给它自己。
这样做的情况如下:

int old_l= l;
l++; //l is incremented
l = old_l; // you assign back the old value