我经常遇到这种情况,我有一个复杂的if语句,包含很多内部if语句和大量重复代码。它本质上归结为我有一堆案例和某些基于这些语句执行的代码块,但如果一个不同的条件为真,那么我希望这些代码块在不同的条件下执行。这是一个通用的例子:
if (condition) {
if (conditionA) {
codeBlockW;
}
else if (conditionB) {
codeBlockX;
}
else if (conditionC) {
codeBlockY;
}
else if (conditionD) {
codeBlockZ;
}
}
else {
if (conditionA) {
codeBlockZ;
}
else if (conditionB) {
codeBlockY;
}
else if (conditionC) {
codeBlockX;
}
else if (conditionD) {
codeBlockW;
}
}
答案 0 :(得分:0)
if ((condition AND conditionA) OR (!condition AND conditionD)) { codeBlockW }
else if ((condition AND conditionB) OR (!condition AND conditionC)) { codeBlockX }
else if ((condition AND conditionC) OR (!condition AND conditionB)) { codeBlockY }
else if ((condition AND conditionD) OR (!condition AND conditionA)) { codeBlockZ }
你可以稍微缩短它,也许,我没想到任何更短的方式...