C++ - 如何||操作员工作?
问题描述:
我在程序中看到过这种语法,但我不确定返回部分会发生什么。 ||(或)是什么意思?这是否表示当a
和b
中的至少一个为true
时,该方法返回true
,并且当它们都是false
时返回false
?C++ - 如何||操作员工作?
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')
这将不会被允许,如果这个规则就不存在了。