java - 嵌套 if 语句与替代代码结构(性能影响?)

标签 java performance if-statement conditional-statements nested

我经常这样构建我的代码:

public void doSomething() {
    if (!condition1) {
        println("problem 1");
        return;
    }
    if (!condition2) {
        println("problem 2");
        return;
    }
    if (!condition3) {
        println("problem 3");
        return;
    }

    // code to run if
    // everything is OK
}

而不是像这样嵌套:

public void doSomething() {
    if (condition1) {
        if (condition2) {
            if (condition3) {
                // code to run if
                // everything is OK
            }
            else {
                println("problem 3");
            }   
        }
        else {
            println("problem 2");
        }
    }
    else {
        println("problem 1");
    }

}

其中一方相对于另一方有什么好处吗?其中一个比另一个更“正确”吗?谢谢!

最佳答案

您应该分析您的代码,看看哪个条件在大多数情况下都是正确的。如果每个条件为真的次数存在显着差异,那么请务必使用第一个结构,安排您的代码以利用特定于域的输入。这可能会给您带来一些显着的性能优势。

关于java - 嵌套 if 语句与替代代码结构(性能影响?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17873387/

相关文章:

java - JPA:检查实体对象是否已持久化

java if嵌套循环

使用向下应用行时的 R 引用列

mysql - 将数据库记录分为已处理/未处理的有效策略

javascript - javascript 上的基本 if/else 不起作用

java - Vaadin:布局中的中心组件不能仅与静态值一起使用 setSizeFull 吗?

java - 如何在python中获取磁盘卷标和驱动器之间的映射

java - 这是在 MainActivity 中初始化 SQLite 的正确方法吗?

php - MySQL查询缓存与应用层缓存结果集

performance - MATLAB 类数组