HELP LOOPS J. L. Cunningham July 1982
Revised: Adrian Howard Mar 1992
Revised A.S. May 2012
The usual way to make POP-11 do some instructions several times
(iteration) is to use loops (also called iterative constructs). See:
*FOR --- Iteration over lists and structures
(The HELP *FOR file presents a variety of loop forms including
parallel iteration over different lists)
*FOREACH --- Selective iteration over a database, using pattern
matching
*FOREVERY --- Like -foreach-, but matches a list of patterns,
coping with all possible combinations of matches (except for
segment variables using "??")
*REPEAT --- Repeats a set of actions indefinitely
(but see "quit" options below)
*REPEAT N TIMES --- Repeats a set of actions a specified number of times
*WHILE --- Repeats a set of actions while a condition is -true-
*UNTIL --- Repeats a set of actions until a condition is -true-
Loops can be interrupted, conditionally or unconditionally, see:
*QUITLOOP --- to jump out of one or more enclosing loops
*QUITIF --- to jump out of a loop if a condition becomes -true-
*QUITUNLESS --- to jump out of a loop if a condition becomes -false-
*NEXTLOOP --- to continue an enclosing loop (start next iteration)
*NEXTIF --- to restart a loop if a condition becomes -true-
*NEXTUNLESS --- to restart a loop if a condition becomes -false-
All the above can take an extra integer argument specifying that the Nth
enclosing loop should be terminated or continued. The *RETURN command
terminates the execution of the current procedure, and also jumps out of
any loops.
See HELP *FOR_FORM for information on creating new looping constructs.
For alternatives to the above see:
*APPLIST --- Applies a procedure to each element of a list
*MAPLIST --- As -applist-, but returning a changed copy of list
*RECURSION --- A short introduction to recursion techniques
*GOTO --- Transfers control within a procedure (NOT
recommended)
*GO_ON --- Jump to one of a list of labels
*SWITCHON --- A 'case' construct
Also see:
HELP *CONTROL --- Information on POP-11 control structures
REF *FASTPROCS --- Information on non-checking iteration
constructs.
REF *POPSYNTAX --- Syntax diagrams for POP-11.
REF *SYNTAX --- More on POP-11 syntax
--- $usepop/pop/help/loops
--- Copyright University of Sussex 2012. All rights reserved. ----------Author: J. L. Cunningham July 1982