There are two forms of the
IF syntax. The first allows the conditional execution of one command:
IF condition singlecommand
IFNOT condition singlecommand
The second allows conditional execution of multiple commands within a block:
IF condition1 THEN … ELSE IF condition2 THEN … ELSE IFNOT conditionn THEN … ELSE … END
Note that only the
IF clause is mandatory, all other clauses are optional. Empty clauses (i.e., clauses without commands) are allowed. The last clause must be closed with an
END statement. For more information on conditions see Conditional Expressions.
Neither the condition nor the
singlecommand should contain the string
THEN. If either does, in most cases STx will amazingly mistake the whole command for an ill-formed
DO WHILE command
WHILE condition … END
DO WHILE condition … END
Provided that the conditional expression condition holds true, the commands in the block enclosed by the
DO WHILE, and the corresponding
END statement are repeatedly executed until condition becomes false.
To put it more bluntly: The condition is always tested on the begin of the loop, that is, before executing the respective block of commands. With STx, there is no explicit loop statement checking its condition at the end of the loop, but if this is what you are longing for, you will find relief by combining the FOREVER statement with an appropriate IF, and BREAK, statement.
DO FOREVER command
DO FOREVER, statement starts a, potentially infinite, loop. The commands between
DO FOREVER and the corresponding
END statement are being executed forever, or until execution of the loop gets interrupted by other means, e.g. by STx crashing, a
BREAK statement being encountered, or an
EXIT, or a GOTO statement being executed.