1. ホーム
  2. if-statement

[解決済み] 条件Aを満たした場合、条件Bを満たさないと行動Cができない。

2022-04-28 17:54:48

質問

質問です。

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

アクションCのコードを2回書かずに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
}

このロジックは短いですが、将来のプログラマーがメンテナンスしづらくなる可能性があることに注意してください。