我经常遇到以下问题,我想知道是否有更好的方法来处理它:
if (A || B)
{
//Start stuff if either A or B is true. Then:
if (A && B)
//DoSomething
else if (A && !B)
//DoSomething
else if (B && !A)
//DoSomething
}
我问,因为当注释被代码替换时,if-elseif-elseif最终看起来像是一团糟。甚至没有谈论当涉及到C时该怎么做。欢迎任何帮助〜
答案 0 :(得分:3)
至少,最后两个条件有点多余,可以简化:
if (A && B)
//DoSomething
else if (A)
//DoSomething
else if (B)
//DoSomething
因为我们已经知道两者都不能true
。除此之外,我不知道如何进一步简化这一点。由于您基本上对每种情况的排列感兴趣,因此您基本上需要对它们进行处理。
答案 1 :(得分:1)
这无法回答,但无论如何,这里有一些想法: