如果我的某些方法中有一些代码最多包含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语句正在评估比整数更复杂的东西.
大概.这取决于编译器是否可以检测到您的条件是互斥的,并根据它进行优化.在简单整数的情况下,它可能可以; 在更复杂的情况下,它不能.
但它不只是关于编译器.它也是关于读者的.使用else if文件向读者说案件是相互排斥的,这是一件好事.
另一种选择是从每个if块末尾的函数返回.