2017-07-19 107 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'的值无关 –