私は条件文の長い鎖に対応するために2つの良いトリックを知っています。
最初に、結合条件を記述する名前付き変数を作成します。
firstCompoundCondition = conditionA1() || conditionA2() && conditionA3() || ... && conditionAN();
secondCompoundCondition = conditionB1() || conditionB2() && conditionB3() || ... && conditionBN();
...
nthCompoundCondition = conditionZ1() || conditionZ2() && conditionZ3() || ... && conditionZN();
if (firstCompoundCondition) {
functionA();
}
else if (secondCompoundCondition) {
functionB();
}
...
else if (nthCompoundCondition) {
functionZ();
}
二 - これは一種の微妙な、おそらく最終的にはより強力であるが - 単に理想的な内部関数の結果を返す、返すようにあなたのコードを構成することにより、すべてのelse
のための必要性を排除することであるが、ブロック内に戻ることもできます。これは多くのように見えない関数を抽出することを意味することができますが、すべてが言われて実行されるときれいになります。
firstCompoundCondition = conditionA1() || conditionA2() && conditionA3() || ... && conditionAN();
secondCompoundCondition = conditionB1() || conditionB2() && conditionB3() || ... && conditionBN();
...
nthCompoundCondition = conditionZ1() || conditionZ2() && conditionZ3() || ... && conditionZN();
if (firstCompoundCondition) return functionA();
if (secondCompoundCondition) return functionB();
...
if (nthCompoundCondition) return functionZ();
異なる言語には、これを簡単にするさまざまな機能があります。あなたの例から、これはCベースの言語に見えますが、C、java、javascript、C#などがあります。実際にどの言語で作業していますか? – AggieEric
JavaScriptで作業していますが、言語に固有のものではないと考えていました。それぞれの言語に対して何かをするなら、私は別のものについての詳細を知りたいと思うでしょう – user2802557
[条件式の単純化](https://sourcemaking.com/refactoring/simplifying-conditional-expressions) – jaco0646