2012-03-03 66 views
1

我在程序中看到過這種語法,但我不確定返回部分會發生什麼。 ||(或)是什麼意思?這是否表示當ab中的至少一個爲true時,該方法返回true,並且當它們都是false時返回falseC++ - 如何||操作員工作?

bool A::truthValue() { 
    bool a = true; 
    bool b = true; 
    if(........) 
     a= false; 
    if(........) 
     b=false 

    return (a || b); 
} 

回答

5

如果b或a爲真,它將返回true。這意味着結果(見表):

a | b | result 
t | t | t 
f | t | t 
t | f | t 
f | f | f 

其實在您的特定情況下,虛假只會如果兩個if語句成爲真正返回。

編輯所以 - 你的建議是正確的。

1

這意味着返回true,如果一個b是真實的。

1

這是否意味着當leas中的某個a和b爲真時該方法返回true,並且當它們都是false時返回false?

這意味着這一點。

0

更確切地說:運算符將首先評估左側的表達式。如果是,則右側的表達式將被忽略,並且整個||表達式評估爲真。如果左表達式爲假,則評估正確的表達式;如果整個||都是真的表達式評估爲真,否則爲false。

此行爲已定義良好,並非微不足道。這個邏輯排阻適用於C++,它允許類的東西所有的邏輯運算符:

if (p && *p != '\0') 

這將不會被允許,如果這個規則就不存在了。