C++ - 如何||操作员工作?

C++ - 如何||操作员工作?

问题描述:

我在程序中看到过这种语法,但我不确定返回部分会发生什么。 ||(或)是什么意思?这是否表示当ab中的至少一个为true时,该方法返回true,并且当它们都是false时返回falseC++ - 如何||操作员工作?

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

    return (a || b); 
} 

如果b或a为真,它将返回true。这意味着结果(见表):

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

其实在您的特定情况下,虚假只会如果两个if语句成为真正返回。

编辑所以 - 你的建议是正确的。

这意味着返回true,如果一个b是真实的。

这是否意味着当leas中的某个a和b为真时该方法返回true,并且当它们都是false时返回false?

这意味着这一点。

更确切地说:运算符将首先评估左侧的表达式。如果是,则右侧的表达式将被忽略,并且整个||表达式评估为真。如果左表达式为假,则评估正确的表达式;如果整个||都是真的表达式评估为真,否则为false。

此行为已定义良好,并非微不足道。这个逻辑排阻适用于C++,它允许类的东西所有的逻辑运算符:

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

这将不会被允许,如果这个规则就不存在了。