[英]Converting && (logical and) operator into || (logical or) operator
布尔a,b;
A)
if (a && b)
return true;
else
return false;
B)
if (!a || !b)
return false;
else
return true;
我有点困惑。 A和B等价吗?
是的,由于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。)
对,他们是。 第一个简单地检查它们是否都为真,第二个简单地检查它们是否都为假。 如果两者都为true,则两者仍返回true;否则为false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.