Function: _void_if
C-Name: ifpari_void
Section: programming/internals
Prototype: vGDIDI
Help: internal variant of if() that does not return a value.

Function: if
Section: programming/control
C-Name: ifpari
Prototype: GDEDE
Help: if(a,{seq1},{seq2}): if a is nonzero, seq1 is evaluated, otherwise seq2.
 seq1 and seq2 are optional, and if seq2 is omitted, the preceding comma can
 be omitted also.
Doc: evaluates the expression sequence \var{seq1} if $a$ is non-zero, otherwise
 the expression \var{seq2}. Of course, \var{seq1} or \var{seq2} may be empty:

 \kbd{if ($a$,\var{seq})} evaluates \var{seq} if $a$ is not equal to zero
 (you don't have to write the second comma), and does nothing otherwise,

 \kbd{if ($a$,,\var{seq})} evaluates \var{seq} if $a$ is equal to zero, and
 does nothing otherwise. You could get the same result using the \kbd{!}
 (\kbd{not}) operator: \kbd{if (!$a$,\var{seq})}.

 Note that the boolean operators \kbd{\&\&} and \kbd{||} are evaluated
 according to operator precedence as explained in \secref{se:operators}, but
 that, contrary to other operators, the evaluation of the arguments is stopped
 as soon as the final truth value has been determined. For instance
 \bprog
 if (reallydoit && longcomplicatedfunction(), ...)
 @eprog
 \noindent is a perfectly safe statement.

 Recall that functions such as \kbd{break} and \kbd{next} operate on
 \emph{loops} (such as \kbd{for$xxx$}, \kbd{while}, \kbd{until}). The \kbd{if}
 statement is \emph{not} a loop (obviously!).
