Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 转换&&;(逻辑与)运算符转换为| |(逻辑或)运算符_C - Fatal编程技术网

C 转换&&;(逻辑与)运算符转换为| |(逻辑或)运算符

C 转换&&;(逻辑与)运算符转换为| |(逻辑或)运算符,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,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>;