IF
PURPOSE:
To provide conditional execution of commands
STATEMENT SYNTAX:
stno IF logex {THEN}command(s){ELSE command(s)} {ENDIF} command(s)
where:
logex = any logical expression.
command(s) = any SM32 command(s)
EXAMPLE:
0010 IF A$="example" THEN PRINT A$
0200 IF X=7 OR X$="SEVEN" THEN GOTO 0100 ELSE RETURN
0300 IF X=7 AND X$="SEVEN" THEN Y=8 ELSE Y=9
1234 IF A=B THEN A=A+1;B=B+2 ELSE A=0 ENDIF; C=0
NOTES:
A logical expression can be defined as follows:
logex=logcomp OR/AND logex
That is a logical expression is a logical comparison optionally
followed by an OR or an AND with a logical expression.
A logical comparison can be defined as follows:
logcomp=expr logop expr
or
logcomp= str expr logop expr
That is a logical comparison is an arithmetic expression followed by a
logical operator followed by an arithmetic expression or a
logical expression is a string expression followed by a logical
operator follow by a string expression. The logical operators are as follows:
= equal to
< less than
> greater than
<> not equal to
<= =< less than or equal to
>= => greater than or equal to
The order of evaluation of the logical expression can be varied by
the use of brackets. Bracketing can also make complex logical
expressions more readable. All logical expression resolve to either
TRUE or FALSE.
If the logical expression is TRUE the commands
that would be executed are as follows:
All commands that follow the logical expression until one of the following
event occurs:
- an ELSE is executed. The ELSE then skips execution to the
ENDIF if present or the end of the statement.
- a ENDIF is executed.
- a GOTO statement is executed.
- the end of the statement is encountered.
If the logical expression is FALSE the commands that would be
executed are as follows:
All the commands the that follow the ELSE (if any) until
one of the following events occurs:
- a ENDIF is executed.
- a GOTO statement is executed.
- the end of the statement is encountered.