C 转换&&;(逻辑与)运算符转换为| |(逻辑或)运算符
布尔a,bC 转换&&;(逻辑与)运算符转换为| |(逻辑或)运算符,c,C,布尔a,b A) if (a && b) return true; else return false; B) if (!a || !b) return false; else return true; 我有点困惑。A&B是否等效???是的。第一个简单地检查它们是否都是真的,第二个简单地检查它们是否都是假的。如果两者都是真的,它们仍然返回真,如果不是真的,则返回假。是的,它们是等效的,因为德摩根定律: !(a && b) ==
A)
if (a && b)
return true;
else
return false;
B)
if (!a || !b)
return false;
else
return true;
我有点困惑。A&B是否等效???是的。第一个简单地检查它们是否都是真的,第二个简单地检查它们是否都是假的。如果两者都是真的,它们仍然返回真,如果不是真的,则返回假。是的,它们是等效的,因为德摩根定律:
!(a && b) == !a || !b
因此
然而,在任何一家体面的公司,如果编写这样的代码,就会很快被解雇
if (<condition>)
return true;
else
return false;
if()
返回true;
其他的
返回false;
是多余的,而且写起来更可读
return <condition>;
返回;
相反。(如果您需要始终确保结果为0或1,可能
return!=0
,但您的代码中已经存在这种情况,因为&&
和|
保证产生0或1。)是的,它们是。谷歌“德摩根定律”。它们是平等的。。你可以用真值表轻松地检查这些规则。谢谢你的解释。那么B的等价物是什么呢?它回来了!(!a | |!b)@user966379它的返回a&&b代码>也是。选择最具可读性的方法。
return <condition>;