簡體   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