COBOL Manual for TNS and TNS/R Programs

Procedure Division Verbs
HP COBOL Manual for TNS and TNS/R Programs522555-006
9-166
PERFORM VARYING
PERFORM VARYING
PERFORM VARYING executes a loop of procedures. PERFORM VARYING with TEST
BEFORE is a “while loop;” with TEST AFTER, it is a “repeat loop.”
A single PERFORM VARYING statement containing one or more AFTER phrases
enables you to perform nested loops of procedures. The last AFTER phrase defines
the innermost loop. The first set of parameters in the VARYING phrase defines the
outermost loop.
Example 9-54. PERFORM UNTIL Statement
WORKING-STORAGE SECTION.
01 ANY-ADDS-CV PICTURE 9.
88 SOME-MORE-ADDS VALUE 0.
88 NO-MORE-ADDS VALUE 1.
...
PROCEDURE DIVISION.
...
MOVE 0 TO ANY-ADDS-CV
PERFORM ADD-ROUTINE UNTIL NO-MORE-ADDS
...
ADD-ROUTINE.
...
procedure-groupPERFORM
test-site
test-site
END-PERFORM
imperative-statement
varying-phrase after-phrase
varying-phrase
after-phrase
VST198.vsd