Logic 简化这些if语句的方法

Logic 简化这些if语句的方法,logic,Logic,我经常遇到这样的情况,我有一个复杂的if语句,其中包含很多内部if语句和大量重复的代码。它本质上可以归结为我有一堆案例和基于这些语句执行的特定代码块,但是如果不同的条件为真,那么我希望这些代码块在不同的条件下执行。以下是一个通用示例: if (condition) { if (conditionA) { codeBlockW; } else if (conditionB) { codeBlockX; } else if (c

我经常遇到这样的情况,我有一个复杂的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;
    }
}
你可以像这样把它缩短一点,也许,我不认为会有更短的方法

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 }