条件Aが一致した場合、アクションCを実行するには条件Bが一致している必要があります。質問する

条件Aが一致した場合、アクションCを実行するには条件Bが一致している必要があります。質問する

私の質問は次のとおりです:

if (/* condition A */)
{
    if(/* condition B */)
      {
         /* do action C */
      }
    else
      /* ... */
}
else
{
   /* do action C */
}

アクション C のコードを 2 回ではなく 1 回だけ記述することは可能ですか?

どうすれば簡素化できるでしょうか?

ベストアンサー1

こうした種類の問題に対する最初のステップは常に、論理表を作成することです。

A | B | Result
-------------------
T | T | do action C
T | F | ...
F | T | do action C
F | F | do action C

表を作成したら、解決策は明らかです。

if (A && !B) {
  ...
}
else {
  do action C
}

このロジックは短くなりますが、将来のプログラマーが保守するのが困難になる可能性があることに注意してください。

おすすめ記事