有人可以向我解释这行代码的含义以及它是否是好的做法吗?
在我看来,它试图将一个或另一个值分配给布尔值,但尚不清楚。
myBoolVar = isC || isP || isX;
有人可以向我解释这行代码的含义以及它是否是好的做法吗?
在我看来,它试图将一个或另一个值分配给布尔值,但尚不清楚。
myBoolVar = isC || isP || isX;
如果 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
结构而不是更冗长的东西。
如果您觉得自己有更清晰的表达方式,请与我们分享,我们可以讨论。
运算符||
仅表示 OR。所以在伪代码中你可能会说
myBoolVal = isC OR isP OR isX
这用简单的英语做什么......
“如果 isC 为真,或 isP 为真,或 isX 为真,则 myBoolVal 为真,否则,myBoolVal 为假”
如果其中任何一个具有true
值,则返回 true
bool myBoolVar = false;
if( isC == true || isP == true || isX == true)
{
myBoolVar = true;
}
它是有条件的 OR:
这意味着来自的任何变量isC, isP, isX
都是True
myBoolVar
True
那是:
myBoolVar = if(isC == true) || if(isP == true) || if(isX == true)