基本概念:
逻辑是消除歧义的工具,在编程过程中发挥着重要的作用。在考虑的过程中,确认是否有“遗漏”(完整性)和“重复”(排他性)是相当重要的。
命题:能够判断对错的陈述句。
逻辑非:不是A( not A)
A | A |
true | false |
false | true |
双重否定(等于肯定):不是 不是A(not not A)
A | A | A |
true | false | true |
false | true | false |
逻辑与:A并且B(A and B)
A | B | A B |
true | true | true |
false | true | false |
true | false | false |
false | false | false |
逻辑或:A或者B(A or B)
A | B | A B |
true | true | true |
false | true | true |
true | false | true |
false | false | false |
异或:A或者B(但不都满足)
A | B | A B |
true | true | false |
true | false | true |
false | true | true |
false | false | false |
相等:A和B相等
A | B | A=B |
true | true | true |
false | true | false |
true | false | false |
false | false | true |
蕴涵:若A则B
A | B | AB |
true | true | true |
true | false | false |
false | true | true |
false | false | true |
注意,生活中提到的如果A是真的,B也是真的;A是假的,B也是假的。体现的是逻辑A=B。
这里提到的AB是指如果A是真的,B也是真的;如果A是假的,B是真是假都可以,不受影响。
德摩根定律:
(A)(B)=(A B)
(A)(B)=(A B)
三值逻辑:包括未定义(undefined)的逻辑。
带条件的逻辑与:(A && B)
A | B | A&&B |
true | true | true |
true | false | false |
true | undefined | undefined |
false | true | false |
false | false | false |
false | undefined | false |
undefined | true | undefined |
undefined | false | undefined |
undefined | undefined | undefined |
注意,不包含undefined时,A&&B和AB相等。
带条件的逻辑或:(A || B)
A | B | A || B |
true | true | true |
true | false | true |
true | undefined | true |
false | true | true |
false | false | false |
false | undefined | undefined |
undefined | true | undefined |
undefined | false | undefined |
undefined | undefined | undefined |
注意,不包含undefined时,A || B和A B相等。
三值逻辑中的否定(!)
A | !A |
true | false |
false | true |
undefined | undefined |
三值逻辑的德摩根定律
(!A)||(!B)=!(A && B)
(!A)&&(!B)=!(A || B)