Javaはif文のネストを最適化する方法
1164 ワード
私たちは普段if、switch、for文を書くのはよくあることで、必ず多層ifやfor文がネストされている場合も書いたことがありますが、コードのネストが3層を超えると、読むのが非常に難しくなります.コードのネストをできるだけ避けるべきで、2層を超えないほうがいいです.
if文ネストの問題
多層if文のネストはよくあることですが、ネストを減らすにはどんな良い方法がありますか?
[color=red]1関数を早期に終了またはデータを返す
ある条件に合致して関数を直接終了できる場合は、この条件を1番目に置く必要があります.次の例を見てみましょう.
このコードにはif文が3層ネストされており、複雑に見えますが、一番後ろのreturnを一番前に抽出することができます.
このコードではcondition 1がfalseに等しい文を前に抽出し,直接関数を終了し,多層ネストされたif文を1層のみif文に再構成し,コードもより明確になった.
注意:一般的にif文を書くと、条件がtrueの場合を前に書きます.これも私たちの思考習慣に合っています.多層ネストの場合はif文のネストを優先的に減らすべきです
[color=red]2内層を抽出して関数としてネストして呼び出す
[/color]
多層ネストの場合、内層ネストを新しい関数に抽出し、その関数を呼び出すことで、コードがより明確になります.
原文アドレス:[url]http://luopq.com/2016/02/21/write-good-function/[/url]
if文ネストの問題
多層if文のネストはよくあることですが、ネストを減らすにはどんな良い方法がありますか?
[color=red]1関数を早期に終了またはデータを返す
ある条件に合致して関数を直接終了できる場合は、この条件を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;
}
//doSomething
このコードではcondition 1がfalseに等しい文を前に抽出し,直接関数を終了し,多層ネストされたif文を1層のみif文に再構成し,コードもより明確になった.
注意:一般的にif文を書くと、条件がtrueの場合を前に書きます.これも私たちの思考習慣に合っています.多層ネストの場合はif文のネストを優先的に減らすべきです
[color=red]2内層を抽出して関数としてネストして呼び出す
[/color]
多層ネストの場合、内層ネストを新しい関数に抽出し、その関数を呼び出すことで、コードがより明確になります.
原文アドレス:[url]http://luopq.com/2016/02/21/write-good-function/[/url]