我经常构造我的代码:
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");
}
}
一个人对另一个人有什么好处吗?一个比另一个更“正确”吗?谢谢!
答案 0 :(得分:1)
您应该对您的代码进行分析,并在大多数情况下查看哪种情况属实。如果每个条件的真实次数存在显着差异,那么请务必使用第一个结构,安排代码以利用特定于域的输入。这可能会为您带来一些显着的性能优势。
答案 1 :(得分:0)
每当我看到多个if时,我想到移动到switch
语句,以获得更多的可读性......并避免多次重复......如果有话....
答案 2 :(得分:0)
if(condition1){
} else if(condition2){
} else if(condition3){
} else {
}
或使用switch语句。这里没有显着的性能优势。使用在您的情况下更具可读性/适合性的那个。我应该补充的另一件事是,在某些情况下,switch语句更快,因为if..else你将检查不同的子句,直到它达到一个匹配或根本没有匹配。
答案 3 :(得分:0)
任何一种代码结构都可以,但是有多个return
语句在调试时会增加另一层复杂性,并且在键入和/或编辑代码时更容易出错。