NOT运算符if(!value)是否与布尔代数/命题逻辑中的相同?

问题描述 投票:0回答:1

这个问题是关于理解语言如何解释语句。我知道if(a)会检查a的真实性。

但是,当我们像这样使用NOT运算符时:

if (!a) {
    ...
}

它是否与布尔代数中的NOT运算符相同,即

----------
| a | !a |
----------
| T |  F |
| F |  T |
----------

仍然检查真实性,还是改变成功条件现在是假的?

这在所有情况下都是无关紧要的,因为无论实现如何,它都会导致同样的事情发生,但我觉得如果语句/更好地理解它会帮助我写得更好。

例如,如果我们查看以下if语句:

if (!(a && b))

和一个真值表:

----------------------------
| a | b | a & b | !(a & b) |
----------------------------
| T | T |   T   |     F    |
| T | F |   F   |     T    |
| F | T |   F   |     T    |
| F | F |   F   |     T    |
----------------------------

我们可以看到它有点复杂 - 所以知道我是否总能依靠真值表来确保我的if语句的正确功能会让我更加困惑。

为了尝试猜测,我想成功条件总是true,并且NOT运算符与布尔代数NOT运算符完全相同,只是反转当前值。

它是否正确?

谢谢。

if-statement conditional not-operator
1个回答
1
投票

逻辑NOT:

'!'运算符返回true,表示不满足的条件。否则返回false。

例如,

 !A returns true if A is false, i.e. when A=0.

它总是反转其操作数的逻辑状态。如果条件为真,则Logical NOT运算符将使其为false。

© www.soinside.com 2019 - 2024. All rights reserved.