我们平时写if,switch或for语句是常有的事儿,也一定写过多层if或for语句嵌套的情况,如果代码里的嵌套超过3层,阅读起来就会非常困难了。我们应该尽量避免代码嵌套多层,最好不要超过2层。
if语句嵌套的问题
多层if语句嵌套是常有的事情,有什么好的方法可以减少嵌套呢?
1 尽早终止函数或返回数据
如果符合某个条件下可以直接终止函数,则应该将这个条件放在第一位。我们来看看下面的例子。
if(condition1) {
if(condition2){
if(condition3){
}
else{
return;
}
}
else{
return;
}
}
else {
return;
}
这段代码中if语句嵌套了3层,看起来已经很复杂了,我们可以将最后面的return提取到最前面去。
if(!condition1){
return;
}
if(!condition2){
return;
}
if(!condition3){
return;
}
这段代码中,我们把condition1等于false的语句提取到前面,直接终止函数,将多层嵌套的if语句重构成只有一层if语句,代码也更清晰了。