6

有人可以向我解释这行代码的含义以及它是否是好的做法吗?

在我看来,它试图将一个或另一个值分配给布尔值,但尚不清楚。

   myBoolVar = isC || isP || isX;
4

5 回答 5

14

||运算符表示条件 OR 。

如果 isC、isP 或 isX 中的任何一个为真,则 myBoolVar 将为真。

它类似于| 布尔操作数之间的运算符,除了如果左侧计算为真,则不会计算右侧

至于这是否是好的做法,请考虑一个更详细的语义等价物:-

bool myBoolVar;

if (isC)
{
  myBoolVar = true;
}
else if (isP)
{
  myBoolVar = true;
}
else if (isX)
{
  myBoolVar = true;
}

特别是,请考虑您更愿意维护哪一个。在大多数情况下,我希望人们认为 tersermyBoolVar = isC || isP || isX;更具可读性。

我从下面的评论中看到,您提出了关于编程是关于简单性而不是“炫耀”的论点。我同意程序员经常试图压缩或故意混淆代码以满足他们自己的需要——通常会损害项目。这可能不是其中一种情况。我可能会更清楚地命名变量,并将其封装在适当命名的属性后面,但我肯定会使用a || b || c结构而不是更冗长的东西。

如果您觉得自己有更清晰的表达方式,请与我们分享,我们可以讨论。

于 2012-11-05T13:19:05.830 回答
5

这是有条件的ORisCisP和的值isX一起OR-ed。

http://msdn.microsoft.com/en-us/library/6373h346.aspx

您需要做的就是阅读精美手册。

于 2012-11-05T13:19:28.300 回答
3

运算符||仅表示 OR。所以在伪代码中你可能会说

myBoolVal = isC OR isP OR isX

这用简单的英语做什么......

“如果 isC 为真,或 isP 为真,或 isX 为真,则 myBoolVal 为真,否则,myBoolVal 为假”

于 2012-11-05T13:31:17.643 回答
2

如果其中任何一个具有true值,则返回 true

bool myBoolVar = false;
if( isC == true || isP == true || isX == true)
{
    myBoolVar = true;
}
于 2012-11-05T13:19:05.327 回答
1

它是有条件的 OR

这意味着来自的任何变量isC, isP, isX都是TruemyBoolVarTrue

那是:

myBoolVar = if(isC == true) || if(isP == true) || if(isX == true)
于 2012-11-05T13:22:10.263 回答