if ((((a > 0) && ((b > 0) || (c> 0) || (d> 0) || (e> 0))) ||
((a1 > 0) && ((b> 0) || (c > 0) || (d > 0) || (e> 0))) ||
((a2 > 0) && ((b> 0) || (c> 0) || (d> 0) || (e> 0))) ||
((a3> 0) && ((b> 0) || c> 0) || (d> 0) || (e> 0)))) &&
((75.5 > d1 && d1 > 74.5) || (75.5 > d2 && d2 > 74.5)))
{
    //do something
}


只想使IF的条件如下:

(a> 0和(b> 0或c> 0或d> 0或e> 0))和((d1 74.5)或(d2 74.5))
要么
(a1> 0和(b> 0或c> 0或d> 0或e> 0))和((d1 74.5)或(d2 74.5))
要么
(a2> 0和(b> 0或c> 0或d> 0或e> 0))和((d1 74.5)或(d2 74.5))
要么
(a3> 0和(b> 0或c> 0或d> 0或e> 0))和(((d1 74.5)或(d2 74.5)))

对于a1到a3相同的条件

cos我在这些代码之前做了一些检查之后创建了一个for循环,而那些a,a1,a2,a3,b,c,d,e是在for循环中某些特殊条件下加1的整数,只想在此if()中做一些进一步的分组,只是想知道这个多重的“ Ands”和“ Ors”是否可以工作

最佳答案

我将其分解为更多的布尔值以简化它

bool biggerZero = (b > 0) || (c> 0) || (d> 0) || (e> 0));
bool anAzero = a > 0 || a1 > 0 || a2 > 0 || a3 > 0;
bool d1range = 75.5 > d1 && d1 > 74.5;
bool d2range = 75.5 > d2 && d2 > 74.5;
bool solution = anAzero && biggerZero && (d1range || d2range);

关于c# - 我可以为“如果”这样做吗?或任何其他方式来做这样的事情?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8335810/

10-12 23:45