有人可以向我解释这行代码的含义以及这是否是一种好的做法?
在我看来,它试图将一个或另一个值赋给布尔值,但目前尚不清楚。
myBoolVar = isC || isP || isX;
答案 0 :(得分:14)
The ||
operator represents a conditional OR.
myBoolVar将为true。
它类似于布尔操作数之间的| operator,除非左侧评估为true,否则将不评估右侧。
至于这是否是一种好的做法,请考虑更详细的语义等价物: -
bool myBoolVar;
if (isC)
{
myBoolVar = true;
}
else if (isP)
{
myBoolVar = true;
}
else if (isX)
{
myBoolVar = true;
}
特别要考虑您希望维护哪一个。在大多数情况下,我希望人们认为较为简洁的myBoolVar = isC || isP || isX;
更具可读性。
我从下面的评论中看到,你提出的关于编程是关于简单而不是“炫耀”的争论。我同意程序员经常尝试压缩或故意模糊代码以满足自己的需求 - 通常会损害项目。这可能是不其中一个案例。我可能会更清楚地命名变量,我可能会将它封装在一个适当命名的属性后面,但我肯定会使用a || b || c
构造而不是更冗长的东西。
如果您觉得有更明确的表达方式,请与我们分享,我们可以讨论。
答案 1 :(得分:5)
这是条件OR
。 isC
和isP
以及isX
的值为OR
- 一起编辑。
http://msdn.microsoft.com/en-us/library/6373h346.aspx
您需要做的就是阅读精细手册。
答案 2 :(得分:3)
||
运算符仅表示OR。所以在伪代码中你可能会说
myBoolVal = isC OR isP OR isX
用简单的英语做什么......
“如果isC为true,或isP为true,或isX为true,则myBoolVal为true,否则myBoolVal为false”
答案 3 :(得分:2)
如果其中任何一个具有true
值
bool myBoolVar = false;
if( isC == true || isP == true || isX == true)
{
myBoolVar = true;
}
答案 4 :(得分:1)
这意味着isC, isP, isX
中的任何变量都是True
,然后myBoolVar
是True
那是:
myBoolVar = if(isC == true) || if(isP == true) || if(isX == true)