Go to the first, previous, next, last section, table of contents.


Statements for Testing Conditions

The `if' statement allows you to decide whether or not to perform some statements based on the value of an arbitrary expression:



if (expression)


  statements


endif


Expression is evaluated and, if it returns a true value, the statements are executed in order; otherwise, nothing more is done.

One frequently wants to perform one set of statements if some condition is true and some other set of statements otherwise. The optional `else' phrase in an `if' statement allows you to do this:



if (expression)


  statements-1


else


  statements-2


endif


This statement is executed just like the previous one, except that statements-1 are executed if expression returns a true value and statements-2 are executed otherwise.

Sometimes, one needs to test several conditions in a kind of nested fashion:



if (expression-1)


  statements-1


else


  if (expression-2)


    statements-2


  else


    if (expression-3)


      statements-3


    else


      statements-4


    endif


  endif


endif


Such code can easily become tedious to write and difficult to read. MOO provides a somewhat simpler notation for such cases:



if (expression-1)


  statements-1


elseif (expression-2)


  statements-2


elseif (expression-3)


  statements-3


else


  statements-4


endif


Note that `elseif' is written as a single word, without any spaces. This simpler version has the very same meaning as the original: evaluate expression-i for i equal to 1, 2, and 3, in turn, until one of them returns a true value; then execute the statements-i associated with that expression. If none of the expression-i return a true value, then execute statements-4.

Any number of `elseif' phrases can appear, each having this form:



elseif (expression) statements


The complete syntax of the `if' statement, therefore, is as follows:



if (expression)


  statements


zero-or-more-elseif-phrases


an-optional-else-phrase


endif



Go to the first, previous, next, last section, table of contents.