====== if ====== ===== Description ===== Test the value of a condition, and if true, execute a statement block. ===== Statement prototype ===== if ... statement block ... endif ===== Arguments ===== ^ Name ^ Type ^ Comment ^ | //condition// | bool | The condition that determines whether the statement block is to be executed. If true, the blcok is executed, and if false, execution skips to the matching endif/elseif/else statement that terminates the statement block.| ===== Example ===== int i set i 5 if echo "negative number" elseif echo "zero" else echo "positive number" endif ===== Comments ===== ==== Terminating an 'if' statement block ==== ''If'' statements in ZeoScript will conditionally execute a block of code that is explicitly terminated by an ''elsif'', ''else'' or ''endif'' statement. Each ''if'' statement //must// be closed by a single matching ''endif'' statement. Optionally, the ''if'' statement may be followed by multiple ''elseif'' statements, and/or one ''else'' statement. The ''else'' statement must be the final conditional statement before the terminating ''endif'' statement. ==== 'Else' after 'if' ==== ZeoScript differs from C/C++ and some other programming languages in that ''if'', ''else'' and ''elseif'' statements are explicitly block statements. In C/C++, for instance, you can omit the block { parens } after an if statement if you only want the next statement to be executed. Not so in ZeoScript; all ''if'', ''else'' and ''elseif'' statements must be explicitly closed. **Wrong:** if echo "negative number" else // error, else not terminated by endif if echo "zero" else echo "positive number" endif This code will result in the following error: ZeoScript error: Cannot find matching 'endif' for 'else' statement. - Line 3: 'else' ZeoScript compilation aborted on line 3 following errors. **Right:** if echo "negative number" else // now the else is terminated by 'endif', and contents are nested if echo "zero" else echo "positive number" endif endif **Better:** if echo "negative number" elseif // using the elseif statement, rather than nested else/if echo "zero" else echo "positive number" endif ===== See also ===== * [[plugins:general:zeoscript:reference:functions:elseif]] * [[plugins:general:zeoscript:reference:functions:else]] * [[plugins:general:zeoscript:reference:functions:endif]]