java - 检查三个 boolean 值的最快且最易读的方法

标签 java performance readability

类似于what is the fastest algorithm for permutations of three condition?Fastest way to find correct combination with set of 8 booleans

<小时/>

我有三个 boolean 值(称为 abc),每个值都有根据哪些是正确的来采取不同的行动。这里有一个有点奇怪的情况;如果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/

相关文章:

java - Equinox 启动器可执行文件

java - 为什么在函数外部初始化堆栈比在函数内部初始化堆栈执行得更快?

objective-c - iOS 通过 UIWebView 访问 Safari 阅读器功能

javascript - 为大型代码库编写适当的可维护可读 jQuery 的行业和社区最佳实践是什么?

java - Spring 集成: How to read the unconsumed messages in the queue?

java - 如何将 ListView 保存为文本文档而不是将其加载回程序中

java - 动态将不可编辑的 JTable 行设置为可编辑

java - 为什么这个 GoLang 解决方案比等效的 Java 解决方案更快?

Swazoo 和 Komanche 之间的性能差异?

c# - 基于整数设置 bool 值