2

为稍微混乱的标题道歉。

众所周知,

    int x = 4;
    System.out.println(x++); // prints 4
    x = 4;
    System.out.println(++x); //prints 5

通过实验,我发现

    int x = 4;
    System.out.println(x+=4); //prints 8

是否有上述类似物会增加 x 但打印 4 代替?

4

3 回答 3

1

与其他赋值运算符一样,速记赋值返回最终值。
这允许你写

x = y = z += 4;

没有返回原始值的后速记运算符。

于 2013-03-21T02:56:28.227 回答
1

尝试这个 :

int x = 4;
System.out.println((x+=4)-4); //prints 4

或者

int x = 4;
System.out.println((x+=4)-x); //prints 4

但是,对于您所指的场景,没有快捷操作数。:)

于 2013-03-21T02:56:58.447 回答
0

++x 是前增量,x++ 是后增量

//pre increment
int x = 3;
System.out.println(++x); //prints 4
System.out.println(x); //prints 4

//post increment
int y = 7;
System.out.println(y++); //prints 7
System.out.println(y); // this will print 8 now because of the postincrement

所以我认为你的问题的答案是变量的后递增。

于 2013-03-21T06:03:59.163 回答