bool a,b;
A)
if (a && b)
return true;
else
return false;
B)
if (!a || !b)
return false;
else
return true;
我有点困惑。是A& B等价??
答案 0 :(得分:7)
是的,因为De Morgan的法律,它们是等价的:
!(a && b) == !a || !b
因此
(a && b) == !(!a || !b)
然而,在任何体面的公司,如果编写这样的代码,就会很快被解雇。
if (<condition>)
return true;
else
return false;
是多余的,写起来更具可读性
return <condition>;
代替。 (如果您需要始终确保0或1结果,可能return <condition> != 0
,但代码中已经是这种情况,因为&&
和||
保证会产生0或1。)
答案 1 :(得分:1)
是的。第一个是简单地检查它们是否都是真的,第二个检查它们中的任何一个是否为假。如果两者都是真的,它们都仍然返回true,否则返回false。