
Eine Laufvariable nimmt nacheinander eine vorgegebene Anzahl von Werten an,
die bestimmt werden durch einen Anfangswert, eine Schrittweite und
einen Endwert.
Der Datentyp der Laufvariable und entsprechend der Typ von Anfangswert,
Endwert und Schrittweite unterliegt häufig Beschränkungen.
Zulässig sind in der Regel ordinale Datentypen wie Integer.
Der Wert der Laufvariablen darf innerhalb des Aktionsteils nicht verändert
werden !
Die Zählschleife ist ein Spezialfall der Iteration:
Pseudocode
FOR laufvariable:=anfangswert TO endwert STEP schrittweite DO
anweisungsfolge
END DO
Die Zählschleife ist ein Spezialfall des verallgemeinerten Zyklus:
laufvariable := anfangswert
LOOP
WHEN laufvariable > endwert THEN EXIT
anweisungsfolge
laufvariable := laufvariable + schrittweite
END LOOP
Standard Pascal
Pascal läßt als Schrittweite nur 1 bzw. -1 zu.
Werden größere Schrittweiten gebraucht, so muß dies der
Programmierer selbst organisieren.

{ anfangswert <= endwert, schrittweite = 1 }
FOR laufvariable:=anfangswert TO endwert DO
anweisung; { einzelne Anweisung oder Verbundanweisung }
{ anfangswert >= endwert, schrittweite = -1 }
FOR laufvariable:=anfangswert DOWNTO endwert DO
anweisung; { einzelne Anweisung oder Verbundanweisung }
In Abhängigkeit davon, ob der Endwert größer oder kleiner als
der Endwert ist, muß TO oder DOWNTO verwendet werden.
Als Schrittweite wird 1 bzw. -1 verwendet.
Sowohl Standard als auch Extended Pascal treffen in Bezug auf die
Laufvariable folgende Restriktion:
Die Laufvariable muß lokal zu dem Block deklariert sein, in dessen
Anweisungsteil die FOR-Anweisung steht.
Beispiel:
VAR produkt = ARRAY[1..100] OF ...;
i, n : INTEGER;
FOR i := 1 TO n DO { i = 1, 2, ..., n-1, n }
kaufe(produkt[i]);
FOR i := n DOWNTO 1 DO { i = n, n-1, ..., 2, 1 }
count_down(i);
Extended Pascal
Extended Pascal gestattet eine weitere Variante der FOR-Anweisung:
FOR laufvariable IN mengen_ausdruck DO
anweisung; { einzelne Anweisung oder Verbundanweisung }
laufvariable muß einen ordinalen Datentyp besitzen und
mengen_ausdruck muß ein Ausdruck sein, der einen Wert mit
Mengendatentyp liefert.
Der Typ von laufvariable muß kompatibel zum Basisdatentyp
des Mengentyps sein.
Beispiel:
TYPE color = (rot, gelb, gruen); VAR farbe : color; FOR farbe IN [rot, gelb] DO ...;Diese Form der Iteration (set-member-iteration) ist in Pascal++ verfügbar, jedoch zur Zeit nicht in Gnu Pascal.