#### 16.4.6 The `DO IF` Command ¶

    DO IF expression.
      ...matrix commands...
    [ELSE IF expression.
      ...matrix commands...]...
    [ELSE
      ...matrix commands...]
    END IF.

A `DO IF` command evaluates its expression argument. If the `DO IF` expression evaluates to true, then PSPP executes the associated commands. Otherwise, PSPP evaluates the expression on each `ELSE IF` clause (if any) in order, and executes the commands associated with the first one that yields a true value. Finally, if the `DO IF` and all the `ELSE IF` expressions all evaluate to false, PSPP executes the commands following the `ELSE` clause (if any).

Each expression on `DO IF` and `ELSE IF` must evaluate to a scalar. Positive scalars are considered to be true, and scalars that are zero or negative are considered to be false.

The following matrix language fragment sets ‘`b`’ to the term following ‘`a`’ in the Juggler sequence:

    DO IF MOD(a, 2) = 0.
      COMPUTE b = TRUNC(a &** (1/2)).
    ELSE.
      COMPUTE b = TRUNC(a &** (3/2)).
    END IF.