谁能解释为什么这两个陈述不相等?
if not(a and not b):
// do some stuff
if (not a and b):
// do some stuff
我试图通过将第一个语句更改为第二个语句来使我的程序更易于理解,但它不起作用。我完全不明白为什么。
谁能解释为什么这两个陈述不相等?
if not(a and not b):
// do some stuff
if (not a and b):
// do some stuff
我试图通过将第一个语句更改为第二个语句来使我的程序更易于理解,但它不起作用。我完全不明白为什么。
您应该查看 De Morgan 的 Thereom,其中一半是(a):
not(p and q) -> not(p) or not(q)
就如何适用于您的情况而言,只需替换p
为a
和:q
not(b)
not(a and not b) -> not(a) or not(not(b))
-> not(a) or b
(a)另一半是:
not(p or q) -> not(p) and not(q)
if not(a and not b)
是一样的if (not a) or b
,不是你写的。