在Java中检查以下条件的最简洁方法是什么
int m, n;
要检查的条件是m或n是否为负数,但两者都不应为负数。我正在寻找简洁而简单的语法
答案 0 :(得分:15)
(m < 0) ^ (n < 0)
请注意,在此上下文中,^
是逻辑XOR运算符(是的,我的意思是“逻辑”,与“按位”不同)。
答案 1 :(得分:12)
(m ^ n) < 0
更多的填充物可以做出适当的长度答案。
答案 2 :(得分:2)
我会去:
(m < 0) != (n < 0)
对于!=
, ^
与boolean
的操作相同,但我认为它更容易理解且更常用。
答案 3 :(得分:1)
基本上你的测试应该是 - 符号位(最高位)应该是不同的。
这是用java表示的测试;
if ( (x & Integer.MIN_VALUE) != (y & Integer.MIN_VALUE) )
...