2017-07-19 10 views
0

ブール変数で表される3つの条件があります。次のコードブロックを簡単にするにはどうすればよいですか?ネストされた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)'チェックしてから、いいえ。 'if'は単独で存在します。 :) – AwonDanag

+0

'if(con1 && con2 && con3)'と 'else if(!con1 &&!con2)'を実行できませんか? – EpicKip

答えて

1

あなたはこれで行くことができます:あなたは、追加のことを行う必要がある場合はcondition1condition2に該当する場合

bool c12 = condition1 && condition2; 

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

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

やコードを簡単にするためにif文の前にcondition1 && condition2を同一視(但し、条件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'の値とは無関係にヒットします –

関連する問題