类似于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
为假,则c
也必须为假。有六种可能性,这会导致相当长且难看的 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)
...
可以说,更少的嵌套级别和更少的大括号(只是噪音)使其更具可读性。而且你不再需要评论了。
关于java - 检查三个 boolean 值的最快且最易读的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24790540/