2017-07-19 104 views
0

說我有三個條件,由布爾變量表示。我如何使以下代碼塊更簡單?優化嵌套If語句和條件

bool condition1, condition2, condition3; //assuming they already have values 

if (condition1 && condition2) 
{ 
    if (condition3) 
    { 
     //Few lines of code here 
    } 
} 
else 
{ 
    //Same few lines of code above here 
} 

除了將'代碼行'放在方法中之外,還有一種更好的/更簡潔的方法嗎?內部if可以被刪除?謝謝。

+0

是否有外如有線(不在內) – EpicKip

+0

@EpicKip如果你在外面說的是'如果(condition3)'檢查,然後不。單獨的'如果'。 :) – AwonDanag

+0

如果(con1 && con2 && con3)'then then else if(!con1 &&!con2)''你不能嗎? – EpicKip

回答

1

你可以用這個去:

if (!(condition1 && condition2) || (condition1 && condition2 && condition3)) 
{ 
    //Few lines of code here 
} 

或者等同condition1 && condition2if語句之前簡化代碼:

bool c12 = condition1 && condition2; 

if (!c12 || (c12 && condition3)) 
{ 
    //Few lines of code here 
} 

如果你需要做更多的事情,如果condition1condition2是真實的(但不是條件3):

bool c12 = condition1 && condition2; 

if (!c12 || (c12 && condition3)) 
{ 
    if(c12 && !condition3) 
    { 
     // Do extra stuff 
    } 

    //Few lines of code here 
} 
+0

爲什麼downvote? –

+0

嘿謝謝,會試試看。等一會兒吧。 – AwonDanag

+0

這工作。不過,不知道誰低估了。不管怎麼說,還是要謝謝你。 – AwonDanag

-1

我認爲這是相同的,較小的代碼:

if (condition1 && condition2 && condition3) 
{ 
     //Few lines of code here 
} 
else 
{ 
    //Same few lines of code above here 
} 
+0

最初的'else'被命中,與'condition3'的值無關 –