最优雅的方式是将0改为1,反之亦然

时间:2010-03-09 17:21:47

标签: java algorithm

做下一件事最优雅的方法是什么:

int i = oneOrZero;

if (i == 0) {
   i = 1;
} else {
   i = 0;
}

您可以假设i只能有1或0个值。

7 个答案:

答案 0 :(得分:112)

i ^= 1;

XOR该值为1.这为您提供了两种方式(如果您需要以任何方式翻转0 <--> 1):

0 ^ 1 = 1
1 ^ 1 = 0

答案 1 :(得分:81)

减法?

i = 1 - i;

答案 2 :(得分:5)

i = ( i + 1 ) % 2,虽然我认为我们都同意减法或xor方法更好! (虽然它具有“翻转开关”的额外好处,而不仅仅是二进制。)

答案 3 :(得分:4)

i = (i == 0)?1:0是一种方式,虽然我更喜欢@ Jimmy和@ Yuval的版本。

答案 4 :(得分:2)

使用位xor

i ^= 1;

答案 5 :(得分:1)

int x = 0;
x=(int)Math.cos(x);
System.out.println("X value "+x);

答案 6 :(得分:-1)

〜1 + 2 = 0 〜0 + 2 = 1 您可以使用这种方法。