【问题标题】:how to get 2 false Boolean and return true as result如何获得 2 个 false 布尔值并返回 true 作为结果
【发布时间】:2019-09-05 05:57:44
【问题描述】:

在数学方面,我们有-1 * -1 = 1。当 2 个负数相乘时,我们得到一个正数。

但是在 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

显然,&& 不是正确的运算符。 当两者都为假时,哪个运算符允许我有 2 个布尔值,返回真

即 Console.Writeline(假假) 结果为真

【问题讨论】:

  • 使用== - bi == bj
  • 如果两者都为真,或真+假,结果应该是什么?
  • false 类似于0,而不是-1。所以0 * 0 = 0

标签: c# boolean


【解决方案1】:

最接近您的逻辑的是使用否定 XOR:

! (bi ^ bj);

这样你会得到类似的东西:

1 * 1 = 1
-1 * 1 = -1
1 * -1 = -1

你也可以使用简单的比较运算符==:

bi == bj;

【讨论】:

  • == 会给出相同的结果吗?
  • @mjwills ...是的,它会的! :) 更新了 :)
  • 我有点迷惑,为什么这个问题有这么多花哨的重新实现平等!
【解决方案2】:

当两者都为假时,哪个运算符允许我有 2 个布尔值, 返回真

如果您想检查两个值是否相等(例如,两者都是 true 或两者都是 false),那么 ==equality operator)是您的最佳选择。

var bob = true == true;
var bob2 = false == false;

bobbob2 都将是 true

这非常适合您的问题,因为您想知道 两个 数字是负数还是 两个 数字都是正数(因为这些场景,将它们相乘将得到一个正数)。

【讨论】:

    【解决方案3】:

    Console.Writeline(bi == false && bj == false) 或简称 (!bi && !bj)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2021-06-05
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多