单指令中的双重赋值

时间:2017-01-04 16:42:45

标签: java

这可能听起来很疯狂,但我很想知道是否可以使用单个指令来修改两个不同变量的值。 例如,假设我有这个代码( x和y是int变量):

if(x < 0) {
   y -= x ;
   x = 0;
}

如果x等于-1 ,我会通过执行以下操作获得相同的结果:

if(x < 0) y -= x++;

有没有办法概括以前的结果?我尝试了说明:

if(x < 0) y -=x-=x;

但是,虽然最后的x等于0,但y不会被修改。我错过了什么?

修改

我想(我可能错了)显然我的问题纯粹是理论上的。 我知道应该避免这种做法。我只是好奇:)。

1 个答案:

答案 0 :(得分:2)

试试这个:

if(x < 0) x = (y -= x) - y;

尝试像这样的技巧来挑战是没关系的。但是,不要在您的实际代码中使用这类代码,因为它会给其他代码造成混淆。