For ordinal index variables:
for ordinal_variable := initial_value to final_value do statement
or
for ordinal_variable := initial_value downto final_value do statement
For sets:
for set_element_type_variable in some_set do statement
For pointer index variables:
for pointer_variable := initial_address to final_address do statement
or
for pointer_variable := initial_address downto final_address do statement
@@ Set member iteration
The for statement is a count loop. For further information see for Statement.
for is defined in ISO 7185 Pascal and supported by all known Pascal variants. Iteration of Pointers is a Borland Pascal extension. Set member iteration is an ISO 10206 Extended Pascal extension.
program ForDemo; var CharSet: set of Char; c: Char; n: Integer; Fac: array [0 .. 10] of Integer; PInt: ^Integer; begin CharSet := ['g', 'p', 'c']; for c in CharSet do WriteLn (c); { prints `c', `g', `p' in three lines } Fac[0] := 1; for n := 1 to 10 do { computes the factorial of n for n = 0 .. 10 } Fac[n] := Fac[n - 1] * n; {$X+} { prints n! for n = 0 .. 10 } for PInt := @Fac[0] to @Fac[10] do WriteLn (PInt - @Fac[0], '! = ', PInt^) end.