我有相當複雜的if語句邏輯。我目前正在使用:C++嵌套如果語句可讀性
if(numerical_evaluation) {
if ((!boolOne && boolTwo) || !boolThree){
//do stuff
}
}
其中boolOne,boolTwo和boolThree是邏輯運算(也許x < y
或 'myObject-> getBool' 等)。
我不知道一個更好的方法來使這個易於閱讀,而不需要在第三個if
語句中嵌套||
條件。
我有困難的原因是or
運算符使得它看起來像第三個if
聲明可能是有保證的。
一個選擇就是做這個。
或者,我可以做類似
if(x <= y) {
bool boolFour = false;
if ((!boolOne && boolTwo))
boolFour = true;
if (boolFour || !boolThree){
//do stuff
}
}
甚至讓一個單獨的函數來嘗試驗證一切,或組合成一個單一的返回值?
或者,我可以嘗試以這種方式重組代碼,這可能需要大量的時間。
我的問題:什麼是格式化複雜if
問題的最佳途徑 - 這不僅僅包括if (!A && B && C)
變化更復雜的評價?當您將||
語句與&&
語句組合在一行中時,看起來事情變得無望而無法讀取(特別是當您對boolOne,boolTwo等進行復雜評估時)。 - Best way to format if statement with multiple conditions也適用同樣的原則嗎?或者在使用各種邏輯運算符時存在根本差異?
這可能更適合[Programmers.SE](http://programmers.stackexchange.com/)。 – ildjarn
爲什麼無法讀取?這是完全可讀的... – ForEveR
這是主觀的,可能會被關閉。就我個人而言,我喜歡將邏輯封裝到描述函數中,所以最終的陳述就像'if(HasAccess()&& IsEditable()){...'。 – tenfour