2017-07-19 4 views
0

Angenommen, ich habe drei Bedingungen, dargestellt durch boolesche Variablen. Wie mache ich die folgenden Codeblöcke einfacher? in einem VerfahrenOptimieren verschachtelte If-Anweisungen und Bedingungen

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 
} 

Gibt es einen besseren/sauberere Weg, dies zu vereinfachen, abgesehen von den ‚Codezeilen‘ setzen? Kann der innere if entfernt werden? Vielen Dank.

+0

gibt es irgendwelche Linien in der äußeren if (die nicht in der Innen sind) – EpicKip

+0

@EpicKip Wenn Sie außerhalb der 'if (Bedingung3) reden' check, dann nein. Das 'wenn' ist allein. :) – AwonDanag

+0

Kannst du nicht 'if (con1 && con2 && con3)' dann 'else if (! Con1 &&! Con2)'? – EpicKip

Antwort

1

Sie könnten mit diesem gehen:

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

Oder gleichsetzen condition1 && condition2 vor der if Aussage des Code einfacher zu machen:

bool c12 = condition1 && condition2; 

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

Wenn Sie weitere Dinge tun müssen, wenn condition1 und condition2 wahr sind (aber nicht Bedingung3):

bool c12 = condition1 && condition2; 

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

    //Few lines of code here 
} 
+0

Warum der Downvote? –

+0

Hey danke, ich werde es versuchen. Warte eine Sekunde. – AwonDanag

+0

Das hat funktioniert. Ich weiß jedoch nicht, wer abgelehnt wurde. Danke trotzdem. – AwonDanag

-1

Ich denke, das ist der gleiche und kleinerer Code ist:

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

Das ursprüngliche 'else' wird unabhängig vom Wert von' condition3' getroffen –