LU03d - PAP - Iteration

Eine Iteration ist die Wiederholung eines Programmteils.

Sie besteht aus
* einer Bedingung, die prüft ob der Programmteil (nocheinmal) durchgeführt werden soll
* Den Anweisungen, die mehrmals durchgeführt werden sollen
* einem Pfeil der zurückführt, wenn die Bedingung erfüllt ist
* einem Pfeil der weiterführt, wenn die Bedingung nicht mehr erfüllt ist
Eine Iteration hat immer zwei Nachfolger, einen ersten innerhalb der Iteration und einen zweiten nach Abschluss der Iteration.

Beispiel: Zählen

In diesem Beispiel gibt der Benutzer eine Zahl ein.
Vor jedem Durchlauf der Iteration wird geprüft, ob die Zahl noch kleiner als 100 ist. Solange die Bedingung erfüllt ist, wird die Zahl um 1 erhöht.

Kopfgesteuerte Iteration

Bei der oben gezeigten Schleife, wird die Bedingung vor dem Inhalt der Iteration geprüft. Wir bezeichnen sie als kopfgesteuerte Iteration. Die Bedingung einer kopfgesteuerten Iteration beginnt immer mit „Solange …“. Vermeiden Sie auf jeden Fall das Wort „bis“ in der Bedingung. Auch die Formulierung solange bis … wäre falsch.
Merke: Bei einer Kopfgesteuerten Schleife wird, sofern die Bedingung schon bei Beginn erfüllt ist, der Code innerhalb der Iteration nicht ausgeführt.

Fussgesteuerte Iteration

Bei einer fussgesteuerten Iteration wird zuerst der Inhalt einmal durchgeführt. Erst danach wird geprüft, ob der Inhalt noch einmal durchgeführt werden soll.

Die Bedingung dieser Iteration beginnt mit „Bis …“.
Im Beispiel würde diese fussgesteuerte Iteration auch dann durchgeführt, wenn der Benutzer eine Zahl grösser/gleich 100 eingibt.

Wer steuert, Kopf oder Fuss?

In den meisten Fällen 1)führen Kopfgesteuerte Iterationen zu einem besseren Programmcode. Daher werden wir fussgesteuerte Iterationen weitgehend ausser acht lassen.
Merke: Bei einer Fussgesteuerten Schleife wird der Code innerhalb der Iteration so oder so 1 mal ausgeführt, da erst dann die Bedingung überprüft wird (Fehleranfällig).

Merksatz: Fussgesteuerte Schleifen und Fuss-Schweiss sollten vermieden werden.


© Marcel Suter


1)
Nach Erfahrung des Autoren zu 80-90%
  • modul/archiv/m319/learningunits/lu03/lu03d-iteration.txt
  • Zuletzt geändert: 2024/03/28 14:07
  • von 127.0.0.1