2013-06-12 45 views
2

我有一个布尔方程,并且想简化它。帮助它。简化布尔方程

bool needLoad = isA || (!isA && !isB); 

和之后我使用

if (needLoad){ 
     if (isA) 
      rawData = Configuration.GetData(); 
     if (!isA && !isB) 
      rawData = Configuration.GetOtherData(); 
} 
+4

您可以删除'if(needLoad)'测试以 – qdii

+0

开头,您希望简化什么?第一部分还是第二部分?第二部分是类似于第一个还是其他的故事? – Sharky

+0

查看H2CO3的答案,这是我搜索过的。 – Daniel

回答

12

您可以使用德摩根的身份简化公式:

isA || (!isA && !isB) 
= isA || !(isA || isB) 
= isA || !isB 
+0

我想有人发垃圾邮件。另请参阅其他答案。生病upvote这两个来纠正。 – Sharky

+0

@Sharky是的,这很可能。 – 2013-06-12 09:17:59

+0

这是我搜查:) thx – Daniel

2

你needLoad变量是毫无意义的有..

以下代码将具有完全相同的效果:

if (isA) 
{ 
    rawData = Configuration.GetData(); 
} 
else if(!isB) 
{ 
    rawData = Configuration.GetOtherData(); 
} 
+0

这不是我的要求) – Daniel

+1

是否需要测试'!isA'?如果我们在'else'分支,那么'!isA'必须是'true' – qdii

+0

@qdii真的谢谢,监督! – Yami