这个问题是关于理解语言如何解释语句。我知道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运算符完全相同,只是反转当前值。
它是否正确?
谢谢。
逻辑NOT:
'!'运算符返回true,表示不满足的条件。否则返回false。
例如,
!A returns true if A is false, i.e. when A=0.
它总是反转其操作数的逻辑状态。如果条件为真,则Logical NOT运算符将使其为false。