[英]if with duplicated code or if with duplicated conditions
在接下來的代碼示例中,您認為更好的是什么,還是可以想到另一種以更優雅的方式進行編碼的方法?
if中的條件重復(兩次檢查'b')
if(a || b) {
doAB();
}
if(b) {
doB();
}
重復的代碼(兩次執行doAB()):
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();
}
我猜第一個最好,因為第二個很可能是不正確的。 我會使用您認為簡單且不易出錯的表格。
第二個例子最應該是
if (a) {
doAB();
} else if (b) {
doAB();
doB();
}
如果是a,則不能為b,反之亦然
在這種情況下,您不需要兩個條件。 它應該是一個==!b
// a || b is always true
doAB();
if(b) {
doB();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.