4
這是如何更好?沒有重複代碼someFunction(1)。如何改進算法
if(someTrueOrFalse)
{
if(OthersomeTrueOrFalse)
{
someFunction(1);
}
}
else
{
someFunction(1);
}
這是如何更好?沒有重複代碼someFunction(1)。如何改進算法
if(someTrueOrFalse)
{
if(OthersomeTrueOrFalse)
{
someFunction(1);
}
}
else
{
someFunction(1);
}
讓A
= someTrueOrFalse和B
= OthersomeTrueOrFalse
A | B | outcome
-----------------
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 1
因此:
if (!(someTrueOrFalse && !OthersomeTrueOrFalse)) {
someFunction(1);
}
或,等價地,如通過@axiac評論
if (!someTrueOrFalse || OthersomeTrueOrFalse) {
someFunction(1);
}
它去我認爲(或者有時候這只是一個品味問題)。
這與'if(!someTrueOrFalse || OthersomerrueOrFalse)'相同,這更容易理解。 – axiac 2015-03-03 13:09:11
@axiac答案的方法在我看來更容易理解:Theres只有1個情況函數不能運行:第3個。因此,除了第三種情況,每個案例都要運行。你就像這三個案例是真的,(1,2和4),然後你描述它們。 – Sharky 2015-03-03 13:11:19
@axiac謝謝,補充說,對於答案,儘管我對這個答案的意圖只是爲了說明這是如何用真值表完成的。 – 2015-03-03 13:16:29