У меня есть два условия, ShouldCheckForErrors
и HasErrors
Как правильно пропустить шаг, если 2 условия
Мой код
if(ShouldCheckForErrors && HasErrors)
{
//Do nothing
}
else
{
PassTest()
}
Я чувствую, что это очень longwinded чек. Не существует способа, которым я могу сделать один чек без использования else
?
Например:
if(!ShouldCheckForErrors && !HasErrors)
{
PassTest()
}
не работает, потому что это не назвать PassTest()
когда ShouldCheckforErrors
является true
, но HasErrors
является false
. (И наоборот)
Мне просто кажется, что я забываю что-то с помощью своих логических операторов.
в соответствии с первым кодом (который длиннее), pass означает, что * оба из них являются истинными, это не * или *, а * и *. – Tigran
@ Тигран: Это не так, как работает отрицание. http://en.wikipedia.org/wiki/De_Morgan%27s_laws – SLaks
Это хороший способ. Теперь я не уверен, как компилируется ответ @Adil, но я думаю, что оба условия проверяются там, где здесь, 'HasErrors' не будут проверяться, если'! ShouldCheckForErrors' оценивают 'true' –