我怎样才能简化这个逻辑
我在简化这个条件语句逻辑时遇到困难。有没有更生动的写法?
if(($x || $a) && ($x || $y))
{
if($x){
return true;
}
}
return false;
I'm having trouble simplifying this conditional statements logic. Is there a more effervescent way of writing this?
if(($x || $a) && ($x || $y))
{
if($x){
return true;
}
}
return false;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
根据您的声明,只有当
$x
为 true 时,您才会返回 true,因此这是您真正需要检查的唯一声明,对吗?变量$a
和$y
完全不相关。编辑:与以下内容相同:
According to your statement, you only return true if
$x
is true, therefore that is the only statement you really need to check for, correct? The variables$a
and$y
are completely irrelevant.Edit: Same thing as:
如果仅在 $x 为 true 时返回 true,则其余代码无关紧要。因此,
编辑:哎呀... bool 是一个强制转换,而不是一个函数。
If you only return true if $x is true, then the rest of the code is irrelevant. Thus,
EDIT: Oops... bool is a cast, not a function.
外层
if
的条件,($x || $a) && ($x || $y)
,相当于$x || ($a && $y)
。当我们将其与$x
也必须为 true(内部if
)的条件结合起来时,我们得到($x || ($a && $y)) && $x
。这相当于$x && $x || $x && $a&& $y
可以简化为$x || $x && $a&& $y
。在两个 OR 分支中,$x
必须为 true 才能继续。但如果右侧分支中的$x
为 true,则整个条件已为 true。因此,唯一需要为 true 的变量是
$x
:The condition of the outer
if
,($x || $a) && ($x || $y)
, is equivalent to$x || ($a && $y)
. When we conjunct that with the condition that$x
must also be true (innerif
), we get($x || ($a && $y)) && $x
. And that is equivalent to$x && $x || $x && $a && $y
which can be reduced to$x || $x && $a && $y
. In both OR branches$x
must be true to proceed. But if the$x
in the right branch is true, the whole condition is already true.So the only variable that needs to be true is
$x
:就像几个人已经说过的那样,只有 $x 在你的代码中很重要。我想最短的代码是:
Like several people have already said, only $x matters in your code. I guess the shortest possible code is:
编辑:它只是
return $x;
EDIT : it is simply
return $x;
您可以将其写为一行表达式...
无论 $a 和 $y 是什么,$x 都必须为 true 才能返回 true
You could write this as a one line expression...
regardless of $a and $y, $x has to be true to return true
?
编辑:
?
Edit: