Looping through a table
You can use the PERFORM . . . VARYING
statement
to initialize a table. In this form of the PERFORM
statement,
a variable is increased or decreased and tested until a condition
is satisfied.
About this task
Thus you use the PERFORM
statement
to control looping through a table. You can use either of these forms:
PERFORM . . . WITH TEST AFTER . . . . VARYING . . . UNTIL . . .
PERFORM . . . [WITH TEST BEFORE] . . . VARYING . . . UNTIL . . .
The following section of code shows an example of looping through a table to check for invalid data:
PERFORM TEST AFTER VARYING WS-DATA-IX
FROM 1 BY 1 UNTIL WS-DATA-IX = 12
IF WS-DATA (WS-DATA-IX) EQUALS SPACES
SET SERIOUS-ERROR TO TRUE
DISPLAY ELEMENT-NUM-MSG5
END-IF
END-PERFORM
INSPECT . . .
When control reaches the PERFORM
statement
above, WS-DATA-IX
is set equal to 1 and the PERFORM
statement
is executed. Then the condition WS-DATA-IX = 12
is
tested. If the condition is true, control drops through to the INSPECT
statement.
If the condition is false, WS-DATA-IX
is increased
by 1, the PERFORM
statement is executed, and the
condition is tested again. This cycle of execution and testing continues
until WS-DATA-IX
is equal to 12.
The loop
above controls input-checking for the 12 fields of item WS-DATA
.
Empty fields are not allowed in the application, so the section of
code loops and issues error messages as appropriate.