繁体   English   中英

将&&(逻辑和)运算符转换为|| (逻辑或)运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM