Двойной не в том случае, если условие - лучшая практика? - PullRequest
0 голосов
/ 20 марта 2020

Я все еще новичок ie, поэтому ваша мудрость и совет будут оценены.

У меня сложное условие if, и я не уверен, что делаю это правильно.

if(!conditionOne && conditionTwo){
  //do nothing
} else {
  //do something
}

Я ненавижу иметь пустой блок кода для if, но я не уверен в лучшем способе сделать это. Это кажется наименьшим количеством кода, не делая его менее простым с чем-то вроде

if(!(!conditionOne && conditionTwo)){  

Это просто странно для меня, но может быть, это лучше?

Или

if((!conditionOne && !conditionTwo) || (conditionOne && conditionTwo) || (conditionOne && !conditionTwo){

Это кажется мне более сложным.

conditionOne      conditionTwo          Outcome
False              True                  Do nothing
False              False                 Do something
True               True                  Do something
True               False                 Do something

Как лучше всего это реализовать?

Ответы [ 2 ]

4 голосов
/ 20 марта 2020

По закону Де-Моргана , вы ищете

if(conditionOne || !conditionTwo) {
    //do something
}
1 голос
/ 20 марта 2020

Вы должны проверить Де Моргана L aws. Он охватывает некоторые важные концепции. Например:

!(a && b) эквивалентно (!a || !b)

и аналогично

!(a || b) эквивалентно (!a && !b)

...