Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

Kurs

Datenstrukturen und Algorithmen

5Wiederholungen (Schleifen)

Jeder kennt sie, nervige Arbeiten bei denen wir stumpf immer wieder und wieder und wieder dasselbe machen müssen. Ein Beispiel aus dem Alltag wäre das Einräumen des Kühlschranks nach dem Einkaufen. Kühlschranktür auf, eine volle Einkaufstüte davor, wir greifen nach unten und holen etwas heraus, räumen es ein. Diesen Ablauf wiederholen wir einige Male. Wie oft wir das machen ist bei genauerer Überlegung ganz genau definiert, nämlich so oft bis eben alles im Kühlschrank eingeräumt ist.

Beim Programmieren nennt man das eine „Schleife“ oder auch „Wiederholung“. Das schöne ist, dass wir sie einmal programmieren, und die nervige Rechenarbeit liegt dann beim Computer. Dabei besteht eine Form der Schleife, die gezählte Wiederholung oder „for-Schleife“ aus genau drei Teilen:

  • ein Startwert,

  • eine Bedingung, wann die Schleife endet, und

  • eine Anweisung, wie sich die beiden Werte annähern, damit die Schleife eben endet.

Hier das Beispiel von oben.

1/* Unsere Einkaufstüte startet mit einem Inhalt von 14, z. B. Äpfeln;
2„einkaufstuete > 0“ sagt aus, dass die Schleifesolange wiederholt wird wie 
3der Inhalt unserer Tüte größer als 0 ist, logisch, denn dann ist sie leer; 
4„einkaufstuete = einkaufstuete - 1“ bedeutet, dass mit jedem mal, wenn wir 
5etwas auf der Tüte in den Kühlschrank legen, der Inhalt unserer Tüte um 1 
6reduziert */
7for (einkaufstuete = 14; einkaufstuete > 0; einkaufstuete = einkaufstuete - 1) { 
8/* Mit jedem Durchgang der Schleife wächst der Inhalt des Kühlschranks um 1, 
9sobald die Schleife fertig ist, gilt dementsprechend einkaufstuete = 0 und
10kuehlschrank = 14 */
11   kuehlschrank = kuehlschrank + 1; 
12}

Es gibt aber auch noch andere Formen für Schleifen, das ist teilweise eine Geschmacksfrage welche man lieber verwendet, generell ist die „for-Schleife“ wie oben aber nach etwas Eingewöhnungszeit die praktischste. Trotzdem dasselbe nochmal in Form einer „while-Schleife“:

1/* In dem hier gezeigten Beispiel ist diese Schreibform sicherlich auch 
2eine gute Wahl, schnell und übersichtlich, außerdem durch die Verwendung 
3der englischen Wörter einfach zu verstehen. Aber sobald die Algorithmen 
4verschachtelter werden, ist die „for-Schleife“ meistens übersichtlicher*/
5while (einkaufstuete > 0) {
6   einkaufstuete = einkaufstuete -1;
7   kuehlschrank = kuehlschrank + 1;
8}

Bei Wiederholungen besteht immer die Gefahr einer sogenannten Endlosschleife. Das ist eine Schleife, welche endlos wiederholt wird, weil die Bedingung zu ihrem Ende einfach nicht erfüllt wird. Hier ein kleines Beispiel:

1/* a hat hier immer einen Wert kleiner 0, dadurch wird diese Schleife 
2theoretisch endlos durchgeführt, und der Computer ordnet der Variable 
3"a" immer wieder „-5“ zu */
4a = -5;
5while(a < 0) {
6   a = -5; 
7}

Zusammenfassung:

  • Wir können mithilfe von Schleifen den Algorithmus eine Aufgabe mehrfach hintereinander bearbeiten lassen, ohne jede Wiederholung neu schreiben zu müssen

  • Dafür gibt es diverse Schreibweisen, je nach Anwendung kann die eine besser passen als die andere

  • Achten wir nicht auf Start- und Endbedingung der Schleife kann es sein, dass wir eine „Endlosschleife“ programmieren, die niemals aufhört, sich zu wiederholen


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?