Was sind Schleifen? for-Schleife while-Schleife

Object Pascal im Detail - Schleifen www.delphi-treff.de 68

4.4. Schleifen

4.4.1. Was sind Schleifen? Bisher liefen die Programme stur von oben nach unten ab. In einem Programmablauf kommt es öfters vor, dass eine bestimmte Befehlsfolge mehrmals hintereinander ausgeführt werden soll. So etwas nennt man „Schleife . Nur mal als Beispiel: Wer möchte die Zahlen von 1 bis 10.000 einzeln mit WriteLn ausgeben? Mit einer Schleife geht das ruck-zuck. Schleifen gibt es in unterschiedlichen Arten: Sie unterscheiden sich darin, ob die Abbruchbedingung vor dem ersten Durchlauf geprüft werden soll oder erst danach und ob bereits feststeht, wie oft eine Schleife durchlaufen wird.

4.4.2. for-Schleife

Die for-Schleife hat folgenden Aufbau: for i := 1 to 10 do begin ... Befehlsfolge, die öfters ausgeführt werden soll end; Die Beispielschleife wird von 1 bis 10, also zehnmal durchlaufen. Nach jeder „Runde wird die sog. Schleifenvariable automatisch um 1 erhöht. Die Schleifenvariable heißt im Beispiel i. Das muss natürlich nicht so sein. Allerdings ist es eine übliche Konvention. Auf jeden Fall ist es aber ein Ordinalwert. Die Grenzen 1 bis 10 sind hier direkt als Zahlen vorgegeben, es können jedoch auch Integer-Variablen, Aufzählungen oder Chars sein. Es sind alle Typen erlaubt, bei denen es eine feste Reihenfolge gibt. Die Schleifenvariable darf grundsätzlich nicht innerhalb der For-Schleife verändert werden. Ist die Obergrenze kleiner als die Untergrenze, wird die Schleife nicht durchlaufen z. B. for i:=1 to 0; sind die Grenzen identisch, wird sie einmal durchlaufen. Alternativ zum Hochzählen der Schleifenvariable ist auch Folgendes möglich: for i := 10 downto 1 do ...

4.4.3. while-Schleife

Im Gegensatz zur for-Schleife verwendet die while-Schleife keine Schleifenvariable, die automatisch hochgezählt wird. Hier wird vor jedem Durchlauf geprüft, ob eine bestimmte Bedingung erfüllt ist. Trifft diese Object Pascal im Detail - Schleifen www.delphi-treff.de 69 nicht mehr zu, wird die Schleife nicht mehr durchlaufen und der Programmablauf danach fortgesetzt. Trifft die Bedingung bereits am Anfang nicht zu, wird die Schleife überhaupt nicht betreten. Man spricht hier von einer kopfgesteuerten Schleife. Die while-Schleife hat folgende Struktur: while x y do begin ... Befehlsfolge, die öfters ausgeführt werden soll end; Solange also x ungleich y ist, wird die Schleife durchlaufen. Es ist also ratsam, x undoder y innerhalb der Schleife zu verändern; andernfalls wäre das Durchlaufkriterium immer erfüllt, die Schleife würde nie zu einem Ende kommen. Ein Programmierer spricht hier von einer Endlosschleife, die dazu führt, dass die Anwendung nicht mehr reagiert. Ist x bereits zu Beginn gleich y wird die Schleife überhaupt nicht durchlaufen. Die Bedingung hinter while kann ein beliebiger Ausdruck sein, der einen Wahrheitswert Boolean ergibt.

4.4.4. repeat-until-Schleife