[英]How to get rid of if-else statement clutter?
if (Functioncall){}
else if (Functioncall){}
if (Functioncall){}
if (Functioncall){}
if (Functioncall){
if (Functioncall){
if (Functioncall){}
}
}
else {}
每個函數調用都返回一個布爾值,並根據返回值執行一組語句。 我試圖擺脫if-else階梯,它們似乎使代碼混亂。
我該怎么辦?
您可以檢查相反的條件並返回“早”。 這樣,當您(或其他人)讀取代碼時,您將擁有更清晰的代碼流,更少的縮進以及更清晰的邏輯。
看看這些:
在您的情況下,它將類似於:
if (!Functioncall)
return;
if (!OtherFunctioncall)
return;
等等
根據代碼的編寫方式,嵌套的if
可以寫為大if
if(Function1 && Function2 && Function3){
}else{}
如果您的代碼是
if (Functioncall){
if (Functioncall){
if (Functioncall){
// the code
}
}
}
那么上面的代碼是相同的。
您有一些選擇:
看來您的函數都在返回bool
。 返回true
表示成功, false
表示失敗嗎? 如果是這樣,則應將函數更改為void
並在失敗時引發Exception
。 然后,調用代碼無需檢查返回值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.