在数学上,我们有-1 * -1 = 1
。当两个负数相乘时,我们得到一个正数。
但是在C#bool
中,我找不到解决方法。
int i = -1
int j = -1
bool bi = i>0
bool bj = j>0
Console.writeLine (bi)
Console.writeLine (bj)
Console.writeLine (bi && bj)
结果:
false
false
false
显然,&&不是正确的运算符。 当两个运算符均为false时,哪个运算符可以让我拥有2个布尔值,返回true
即 Console.Writeline(false false) 结果为真
答案 0 :(得分:4)
与您的逻辑最接近的是使用求异的XOR:
! (bi ^ bj);
这样,您会得到类似的东西:
1 * 1 = 1
-1 * 1 = -1
1 * -1 = -1
您还可以使用简单的比较运算符==
:
bi == bj;
答案 1 :(得分:4)
哪个运算符允许我在两个均为假的情况下使用2个布尔值, 返回true
如果您要检查两个值是否相等(例如,两个值均为true
或两个值均为false
),则==
(equality operator)是您的最佳选择。 / p>
var bob = true == true;
var bob2 = false == false;
bob
和bob2
均为true
。
这非常适合您的问题,因为您想知道两个数是否为负或 两个数为正(因为两个这些情况下,将它们相乘将得到一个正数。
答案 2 :(得分:-1)
Console.Writeline(bi == false && bj == false)或简称为(!bi &&!bj)