給出下一個代碼示例,您認爲哪種方法更好,或者您能否想出另一種方式以更優雅的方式對其進行編碼?如果使用重複代碼或者使用重複條件
中如果
if(a || b) {
doAB();
}
if(b) {
doB();
}
重複的代碼(兩次doAB())(兩次爲 'B' 檢查)重複的條件:
if(a) {
doAB();
}
if(b) {
doAB();
doB();
}
或混合...
if(a || b) {
doAB();
if(b) {
doB();
}
}
編輯:
一個同事提出這樣的:
int mask = a?1:b?2:0;
switch(mask) {
case 2:
doB();
case 1:
doAB();
}
你想做什麼? –
第二個片段可能在功能上是錯誤的,因爲如果'a'和'b'都爲真,它會調用'doAB()'兩次。 – Eran
我想避免重複的代碼 –