为了账号安全,请及时绑定邮箱和手机立即绑定

带有 && 和 || 的 IF 函数 同时

带有 && 和 || 的 IF 函数 同时

C#
缥缈止盈 2022-11-21 21:30:04
我想在几个条件下做 IF AND && 和 OR || 在上面我有两个数字范围 Top1 - Bottom1 和 Top2 - Bottom2并且仅当 Currentnumber 在这两个范围内时执行,我这样做可以吗?if (OnlyAbove == True    && (Top1 > Currentnumber || Top2 > Currentnumber)    && (Bottom1 < Currentnumber || Bottom2 < Currentnumber)   ){   Statement}
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我要大胆地说:不,你在这方面做得不对——主要是因为你的代码目前所做的没有意义。


有助于解决此类问题的一件事是用普通英语来表达它——所以你从:


if (OnlyAbove == True

    && (Top1 > Currentnumber || Top2 > Currentnumber)

    && (Bottom1 < Currentnumber || Bottom2 < Currentnumber)

   )

{

   Statement

}

... 至 ...


if OnlyAbove

    AND (CurrentNumber above at least one of the two Tops)

    AND (CurrentNumber below at least one of the bottoms)

毕竟,那些内部括号之间的内容是“Top1 > current OR Top2 > current”——这实际上不是您要查找的内容。


有些事情会有所帮助 - 不仅要编写这样的代码,而且还要阅读它,那就是对变量有点过火。变量在帮助您记录逻辑方面非常棒,因为您可以非常描述性地命名它们。


想象一下这样的代码:


bool betweenRange1 = (Currentnumber > Bottom1) && (Currentnumber < Top1);

bool betweenRange2 = (Currentnumber > Bottom2) && (Currentnumber < Top2);

if (OnlyAbove && betweenRange1 && betweenRange2)

{

    Statement

}

... IF 语句开始看起来更具可读性 - 一目了然地了解它的含义。如果您在解析 IF 语句时遇到问题,养成这种习惯并不是一个坏习惯。也许有点矫枉过正......但矫枉过正比拥有你不确定它在做什么的代码要好得多:-)


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信