Syntax
LOOP [ WHILE ( expression ) ] <logic_block> END | ENDEXIT | ENDNOPRINT
Parameters
The Loop logic command is followed by a set of logic statements to execute for each iteration, and finally by an End, EndNoPrint, or EndExit logic statement.
WHILE ( expression )
Terminates looping when the specified conditional expression evaluates to false.
If this command phrase is not specified, looping continues indefinitely as if ‘while (true)’ had been specified.
Description
The Loop logic command specifies a sequence of logic that is to be executed repeatedly. Loops can be nested within loops.
If the While command option is not specified, a condition should be included within the sequence of logic to specify the terminating conditions for the loop. Use Break and JumpTo logic statements, associated with DoWhen logic statements, to specify terminating conditions for the loop within the sequence of logic. Use Continue to skip processing the remainder of the logic in the loop for the current iteration.
If the EndExit logic command is used to terminate the sequence of logic, and it is executed, the loop is not repeated, and the current class exits as with a normal EndExit logic statement.
Examples
Example 1
LoopIterator := 0 Loop While (LoopIterator < ArraySize) : logic statements LoopIterator = LoopIterator + 1 End
Example 2
In this example, if SortQues is a string attribute set to "ZYXWVUTSRQPOMNLKJIHGFEDCBA", the result in SortAns, of length larger than 25, is "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
Loop Counter = Counter + 1 Move SortQues POS Counter Length 1 SortAns SortA If (Counter > 25) Break End End
Example 3
This example, in a report, prints Frame06 when a valid product name is input. The loop is used to repeat the prompt for input if an invalid product name is supplied.
Loop Message Attention "Enter Product Name" Accept ProdName LookUp ProdName Prod If Glb.Status <> "*****" Break End Message ProdNam "Product name not valid" End Frame06.Print()