2013-06-12 46 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