与what is the fastest algorithm for permutations of three condition?和Fastest way to find correct combination with set of 8 booleans相似
我有三个boolean
值(分别称为a
,b
和c
),每个值根据正确的值具有不同的操作。这里有一种奇怪的情况。如果a
为false,则c
也必须为false。有六种可能性,这会导致较长且难看的if
语句链。这是我想出的:
if (a)
{
if (b)
{
if (c)
{
doAction1(); // a = true, b = true, c = true
}
else
{
doAction2(); // a = true, b = true, c = false
}
}
else
{
if (c)
{
doAction3(); // a = true, b = false, c = true
}
else
{
doAction4(); // a = true, b = false, c = false
}
}
}
else
{
if (b)
{
doAction5(); // a = false, b = true, c = false
}
else
{
doAction6(); // a = true, b = false, c = false
}
}
我希望代码可读性和速度快,这意味着我希望不要使用任何奇怪的按位运算。这不是家庭作业,只是个人项目一部分的简化版。
最佳答案
你总是可以写
if (a && b && c)
{
action1 ();
}
else if (a && b && ! c)
{
action2 ();
}
else if (a && ! b && c)
{
action3 ();
}
else if (a && ! b && ! c)
...
可以说,嵌套级别更少,而括号只是噪声,这使其更具可读性。而且您不再需要评论。