我经常这样构建我的代码:
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/