如果2条件为真,如何正确跳过步骤

JHi*_*son 1 c# logic operators conditional-statements

我有两个条件,ShouldCheckForErrors而且HasErrors

我的代码是

if(ShouldCheckForErrors && HasErrors)
{
    //Do nothing
}
else
{
    PassTest()
}
Run Code Online (Sandbox Code Playgroud)

我觉得这是一张很长的支票.有没有办法我可以做一次检查而不必使用else

例如:

if(!ShouldCheckForErrors && !HasErrors)
{
    PassTest()
}
Run Code Online (Sandbox Code Playgroud)

不工作,因为这将无法打电话PassTest()的时候ShouldCheckforErrorstrue,但是HasErrorsfalse.(反之亦然)

我觉得我忘记了逻辑运算符.

SLa*_*aks 8

你正在寻找德摩根定律:

if (!ShouldCheckForErrors || !HasErrors)
Run Code Online (Sandbox Code Playgroud)

换句话说:

如果没有错误,或者我们没有检查错误,您应该通过.

  • @Tigran:`!(A && B)===(!A ||!B)` (2认同)

Adi*_*dil 5

!在得到两个条件的结果后使用not运算符

if(!(ShouldCheckForErrors && HasErrors))
{
    PassTest();
}
Run Code Online (Sandbox Code Playgroud)