IIF function

Purpose

Return one of two values based upon a TRUE/FALSE evaluation.

Syntax

var  = IIF(num_expression, truepart, falsepart)

var& = IIF&(num_expression, truepart&, falsepart&)

var$ = IIF$(num_expression, truepart$, falsepart$)

Remarks

IIF expects parts of any numeric type.  IIF& expects parts optimized for long integer type.  IIF$ expects parts of string type.

If num_expression evaluates to TRUE (non-zero), the truepart is returned, else the falsepart is returned.  num_expression is evaluated as a normal PowerBASIC Boolean expression, which offers short-circuit expression evaluation as needed.

IIF(1 AND 2, 3, 4) would return the truepart (3) because both terms in num_expression are TRUE, and therefore evaluate to TRUE.

To force a bitwise evaluation of num_expression, enclose it in parentheses.  For example, IIF$( (1 AND 2), "True", "False") would return "False".

IIF% is recognized as a valid synonym for IIF&.

Restrictions

Contrary to the implementation in some other languages, only the selected expression (truepart or falsepart) is evaluated at run-time, not both.  This ensures optimum execution speed, as well as the elimination of unanticipated side effects.

See also

CHOOSE, CHOOSE&CHOOSE$SWITCH, SWITCH&, SWITCH$

Example

iLOGFONT.lfWeight = IIF&(Weight&, 700&, 400&)

Score& = Score& + IIF&(Answer = %FALSE, 0, 10)