1 回答
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 语句时遇到问题,养成这种习惯并不是一个坏习惯。也许有点矫枉过正......但矫枉过正比拥有你不确定它在做什么的代码要好得多:-)
- 1 回答
- 0 关注
- 158 浏览
添加回答
举报