C++ - || 如何运营商工作?
Posted
技术标签:
【中文标题】C++ - || 如何运营商工作?【英文标题】:C++ - how does the || operator work? 【发布时间】:2012-03-21 21:00:30 【问题描述】:我在程序中看到过这种语法,但我不确定返回部分会发生什么。 ||(或)是什么意思?这是否意味着当a
和b
至少有一个是true
时该方法返回true
,而当它们都是false
时返回false
?
bool A::truthValue()
bool a = true;
bool b = true;
if(........)
a= false;
if(........)
b=false
return (a || b);
【问题讨论】:
【参考方案1】:如果 b 或 a 为真,它将返回真。这意味着结果是(见表):
a | b | result
t | t | t
f | t | t
t | f | t
f | f | f
实际上,在您的具体情况下,只有当两个if
语句都为真时才会返回假。
编辑所以 - 你的建议是正确的。
【讨论】:
【参考方案2】:如果a 或 b为真则返回真。
【讨论】:
【参考方案3】:这是否意味着该方法在 a 和 b 至少有一个为 true 时返回 true,而当它们都为 false 时返回 false?
就是这个意思。
【讨论】:
【参考方案4】:更准确地说:||运算符将首先评估左侧的表达式。如果为真,则右侧的表达式被忽略,整个||表达式计算为真。如果左表达式为假,则计算右表达式;如果它是真的整个||表达式计算为真,否则为假。
这种行为是明确定义的,而不是微不足道的。这种逻辑排除适用于 C++ 中的所有逻辑运算符,它允许:
if (p && *p != '\0')
如果此规则不存在,则不允许这样做。
【讨论】:
以上是关于C++ - || 如何运营商工作?的主要内容,如果未能解决你的问题,请参考以下文章