1

我经常遇到这种情况,我有一个复杂的 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;
    }
}
4

1 回答 1

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 }

你可以像这样缩短它,我不认为有任何更短的方法......

于 2013-08-12T10:40:56.990 回答