我想在服务器条件下AND &&和OR ||下做IF在上面
我有两个数字范围 顶部1-底部1和 Top2-Bottom2
,仅在Currentnumber在这两个范围内时执行 我可以吗?
if (OnlyAbove == True
&& (Top1 > Currentnumber || Top2 > Currentnumber)
&& (Bottom1 < Currentnumber || Bottom2 < Currentnumber)
)
{
Statement
}
答案 0 :(得分:2)
我会弯腰说:不,您在此方面做得不好-主要是因为您的代码当前正在执行的操作没有意义。
可以帮助解决此类问题的一件事是用通用英语措词-因此您来自:
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>当前 OR Top2>当前”,这实际上不是您想要的。
可以帮助解决问题的-不仅像这样编写代码,而且对读取这样的代码进行编码,会使变量有些过头。变量很棒,可以帮助您记录逻辑,因为您可以使用非常描述性的方式命名它们。
因此,请想象如下代码:
bool betweenRange1 = (Currentnumber > Bottom1) && (Currentnumber < Top1);
bool betweenRange2 = (Currentnumber > Bottom2) && (Currentnumber < Top2);
if (OnlyAbove && betweenRange1 && betweenRange2)
{
Statement
}
... IF语句开始看起来更具可读性-乍一看显而易见。如果您在解析IF语句时遇到麻烦,那就养成一个好习惯。也许有点矫kill过正...但是矫kill过正比拥有代码要好得多,您不确定它在做什么:-)