Új hozzászólás Aktív témák

  • VikMorroHun

    őstag

    Ezt nem értem. Van három flag, azt akarom, hogy egymás után állítsa be őket a program.
    Eredmény: egyszerre beállítja az összeset, kivéve, ha return utasítással direkt kiléptetem az adott elágazásból. Mit csinálok rosszul?

    if ( this.GetIsFlagSet( flag_var, iFlagExcessTimer3 ) == 0 )  //same as if ( ( flag_var & iFlagExcessTimer3 ) == 0 )
    {
        if ( this.GetIsFlagSet( flag_var, iFlagExcessTimer2 ) == 0 )
        {
            if ( this.GetIsFlagSet( flag_var, iFlagExcessTimer1 ) == 0 )
            {
                if ( this.SetFlag( flag_var, iFlagExcessTimer1 ) < 1 )
                {
                    Print( " Validating problem, ExcessTimer1 flag is not set." );
                  return;                    // without return all flags are set at once.  Why??
                }
                Print( " Validating updated, ExcessTimer1 flag is set." );
              return;
            }
            else if ( this.SetFlag( flag_var, iFlagExcessTimer2 ) < 1 )
                {
                    Print( " Validating problem, ExcessTimer2 flag is not set." );
                  return;
                }
                Print( " Validating updated, ExcessTimer2 flag is set." );
              return;
        }
        else if ( this.SetFlag( flag_var, iFlagExcessTimer3 ) < 1 )
                {
                    Print( " Validating problem, ExcessTimer3 flag is not set." );
                  return;
                }
                Print( " Validating updated, ExcessTimer3 flag is set." );
    }

Új hozzászólás Aktív témák

Hirdetés