什么是最优雅的方式做下的东西:最优雅的方式来改变0到1,反之亦然
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
你可以假设i
只能有1或0值。
什么是最优雅的方式做下的东西:最优雅的方式来改变0到1,反之亦然
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
你可以假设i
只能有1或0值。
i = (i == 0)?1:0
是单向的,虽然我喜欢@ Jimmy和@ Yuval的版本更好。
我更喜欢这个,因为当我读代码时,我确切地知道它应该做什么。这种减法太聪明了,异或并不常见于我马上要识别的操作。 – 2010-03-09 17:33:41
@Frank Schwieterman:根据我的经验,运营商也不那么常见。如果你从未见过?运营商,这并不明显。我会去与异或(也许评论它)。 – GreenMatt 2010-03-09 17:49:14
嗯好点。从我的角度来看,我将认识到? ^之前,但我想那不是普遍的。 – 2010-03-09 18:12:42
使用XOR位
i ^= 1;
i = (i + 1) % 2
,但我认为我们都同意减法或者XOR方法是更好! (虽然它具有“翻转开关”的额外好处,但不止二元)
int x = 0;
x=(int)Math.cos(x);
System.out.println("X value "+x);
这是一个orrero业务被用来做什么?我看到你让程序员断言我只有1或0,但这不是编译器强制执行的。为什么不使用布尔值或枚举? – Carl 2010-03-09 17:44:24
@Carl:因为它是整数 – Roman 2010-03-09 18:19:54
让我澄清一下:为什么你使用一个int来表示(1)只有两个值的东西(不是由整数类型强制执行的)和(2)其值已翻转的东西? – Carl 2010-03-09 18:24:55