使用"else"会加速代码的执行吗?

Chr*_*on4 1 java if-statement

如果我的某些方法中有一些代码最多包含9个if语句,并且所有这些语句中的大部分都只能满足其中一个if要求,那么else if我的代码会使用加速吗?

例如,如果我有这个

if (x == 1){
    do something;
}
if (x == 2){
    do something;
}
if (x == 3){
    do something;
}
if (x == 4){
    do something;
}
Run Code Online (Sandbox Code Playgroud)

会改变它来加速代码吗?

if (x == 1){
    do something;
}
else if (x == 2){
    do something;
}
else if (x == 3){
    do something;
}
else if (x == 4){
    do something;
}
Run Code Online (Sandbox Code Playgroud)

在我的实际代码中,if语句正在评估比整数更复杂的东西.

Seb*_*edl 6

大概.这取决于编译器是否可以检测到您的条件是互斥的,并根据它进行优化.在简单整数的情况下,它可能可以; 在更复杂的情况下,它不能.

但它不只是关于编译器.它也是关于读者的.使用else if文件向读者说案件是相互排斥的,这是一件好事.

另一种选择是从每个if块末尾的函数返回.