Copyright Digital Equipment Corp. All rights reserved.

FOR

 The FOR statement is a looping statement that repeats  execution
 of  a  statement  according  to the value of a control variable.
 The control variable assumes a value within a specified range or
 set.  A FOR statement has one of the following forms:

    FOR control-variable := initial {TO | DOWNTO} final-value DO
       statement

    FOR control-variable IN set-expression DO
       statement


 The 'control-variable' is the  name  of  a  previously  declared
 variable of an ordinal type.

 The 'initial-value' and 'final-value' are expressions that  form
 a range and whose type is assignment compatible with the type of
 the control variable.

 The 'set-expression' is an expression resulting in  a  value  of
 SET  type.   The  base  type  of  the  set  must  be  assignment
 compatible with the control variable.

 The 'statement' is any VSI Pascal statement that does not change
 the value of the control variable.

 At run time, the initial and final values or the set  expression
 is evaluated before the loop body is executed.

 The 'TO | DOWNTO' directives determine  whether  loop  iteration
 will be incremental or decremental, respectively.

 In the TO form, VSI Pascal checks to see if  the  value  of  the
 control  variable  is less than or equal to the final value.  If
 this condition is met, the control variable takes on  the  value
 of  the  initial  value  for  the  first loop iteration.  During
 iterations, the control variable  increments  according  to  its
 data  type.  Looping ceases when the control variable is greater
 than the final value.

 In the DOWNTO form, VSI Pascal checks to see if the value of the
 control  variable  is  greater than or equal to the final value.
 If this condition is met, the  control  variable  takes  on  the
 value of the initial value for the first loop iteration.  During
 iterations, the control variable  decrements  according  to  its
 data  type.   Looping  ceases  when the control variable is less
 than the final value.

 In the set expression form, VSI Pascal checks to see if the  set
 expression  is not the empty set.  If this condition is met, the
 control variable takes on the value of one of the members of the
 set.  Iterations occur for each member of the set; the selection
 order of members of the set is undefined.  Looping  stops  after
 the loop body executes for each member of the set.

 In both the TO and  the  DOWNTO  forms,  incrementation  of  the
 control  variable  depends  on  its  type.   For example, values
 expressed in type INTEGER increment or decrement in units of  1.
 Values   expressed  in  type  CHAR  increment  or  decrement  in
 accordance with the ASCII collating sequence.

 After normal termination  of  the  FOR  statement,  the  control
 variable  does  not retain a value.  You must assign a new value
 to this variable before you use it elsewhere in the program.  If
 the  FOR  loop  terminates  with  a  GOTO statement, the control
 variable retains the last assigned value.  In this case, you can
 use the variable again without assigning a new value.


Additional information available:

Examples