if mi.(j) = false && m.(j).(i) = false
和
if not (mi.(j) && m.(j).(i))
之间的区别,因为我认为它具有相同的含义,但是当我运行的代码它给了我一个不同的答案。
if mi.(j) = false && m.(j).(i) = false
和
if not (mi.(j) && m.(j).(i))
之间的区别,因为我认为它具有相同的含义,但是当我运行的代码它给了我一个不同的答案。
说mi.(j)
为真,m.(j).(i)
为假。
mi.(j) = false && m.(j).(i) = false
true = false && false = false
false && true
false
not (mi.(j) && m.(j).(i))
not (true && false)
not (false)
true
您可能想要not (mi.(j) || m.(j).(i))
。这基本上是德摩根法律的一个实例 。
是的,你是对的!谢谢。 – Quyen 2012-02-21 05:59:00
if mi.(j) = false && m.(j).(i) = false not equal to if not (mi.(j) && m.(j).(i))
为
if not (mi.(j) && m.(j).(i))
你对面的
(mi.(j) && m.(j).(i))
结果 '不' 并不意味着假,但指的声明相反。
希望它有帮助。
if mi.(j) = false && m.(j).(i) = false
其实是一样的
if not mi.(j) && not m.(j).(i)
其中,通过德摩根定律,相当于
if not (mi.(j) || m.(j).(i))
要回答的基本问题,没有x=false
和not x
之间的区别。这两个表达式总是会始终产生相同的结果。正如其他人所指出的,这两个代码的实际问题是未能认识到你没有使用德摩根定律。第一个版本是相当于
(not m.(j)) && (not m.(j).(i))
这是不一样的
not (m.(j) && m.(j).(i))
我发现,要记住这样的事情最好的办法就是觉得现实世界的句子。如果我要说“我想要一天不下雨,而且不下雪”。这不同于说“我想要一天不会下雨和下雪”。实际上与第一句相同的句子是“我想要一天既不下雨也不下雪。” (即不(下雨或下雪))。所以,你必须记住你的逻辑。
这就是为什么相当于第一语句是
not (m.(j) || m.(j).(i))
简而言之:看你的括号! – Ashe 2012-02-21 22:00:24