为稍微混乱的标题道歉。
众所周知,
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 代替?
为稍微混乱的标题道歉。
众所周知,
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 代替?
与其他赋值运算符一样,速记赋值返回最终值。
这允许你写
x = y = z += 4;
没有返回原始值的后速记运算符。
尝试这个 :
int x = 4;
System.out.println((x+=4)-4); //prints 4
或者
int x = 4;
System.out.println((x+=4)-x); //prints 4
但是,对于您所指的场景,没有快捷操作数。:)
++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
所以我认为你的问题的答案是变量的后递增。