Start > Informatik > C - Kurs > Schleifen

Schleifen


Sinn und Zweck

Schleifen gibt es nicht nur beim Schuhe zubinden, nein sie gibt es auch beim Programmieren.
Ich nehme mal ein alltägliches Beispiel: Ein Mitarbeiter in einer Fabrik steht am Fließband und verrichtet immer diesselbe Tätigkeit.
Wenn man sich das genau überlegt, macht der Arbeiter eigentlich nichts anderes als in einer Schleife zu arbeiten, d.h er wiederholt immer wieder dieselben Arbeitsschritte:
  1. nimm Material aus Kiste
  2. schlag mit der Maschine drauf
  3. lege Material in andere Kiste
Diese Arbeitsschritte macht er immer wieder.
Wenn man eine Anleitung für den netten Herrn/ Frau am Band schreibt, dann wird man wohl es so aufschreiben:

Mache die Schritte 1 bis 3 und fange dann wieder bei 1 an.

Beim Programmieren gibt es dass ebenfalls, d.h. ein Befehl bzw. eine Gruppe von Befehlen muss wiederholt werden. Das macht man mit einer Schleife.

Schleif-Art

Hier geht es nicht um Kunst, sondern um verschiedene Arten, wie man eine Schleife programmieren kann. Man unterscheidet grundsätzlich zwei Arten:
  1. Prüfe erst, ob etwas zu tun ist
  2. Fang erstmal an, und prüfe zum Schluss, ob wiederholt werden soll
Bei der ersten Variante hat man eine Bedingung, die am Anfang steht. Wenn diese Bedingung erfüllt ist, dann wiederholt man die Anweisungen. Wenn die Bedingung nicht erfüllt ist, überspringt man die Anweisungen und geht weiter. Dazu mal ein

Beispiel

Wir nehmen unseren Arbeiter aus der Fabrik:

    while (iMaterial > 0) {
       printf("Führe Anweisung 1 aus");
       printf("Führe Anweisung 2 aus");
       printf("Führe Anweisung 3 aus");
       iMaterial = iMaterial - 1;
    }
    printf("fertig");

While (engl. = Solange) die Variable iMaterial>0 ist.
(Hinweis: Wem die Funktionsweise der Bedingung nicht klar ist, der schaut bitte im Kapitel Verzweigungen  nochmal nach.)
Also solange iMaterial > 0, wiederhole die Anweisungen zwischen den geschweiften Klammern, d.h. die Befehle innerhalb der Schleife.
Wenn iMaterial irgendwann kleiner oder gleich 0 ist, dann ist die Bedingung falsch und die Anweisungen in der Schleife werden nicht mehr ausgeführt. Der Computer springt zu der Anweisung "fertig".

Syntax

Die Syntax einer Schleife hängt davon ab, welche Art von Schleife man programmieren will. Ich stelle hier nur while - Schleifen vor, es gibt noch for-Schleifen, die werden im Unterricht besprochen.

Syntax einer while - Schleife (kopf - gesteuert)

    while ( Bedingung) {
        //Anweisungen die wiederholt werden sollen
    }

Bei der sogenannte kopfgesteuerten Schleife (Bedingung am Anfang), wird die Schleife mit dem Befehl while eingeleitet. Die Anweisungen, die wiederholt werden sollen, stehen immer zwischen den geschweiften Klammern.

Syntax einer do-while - Schleife (fuß - gesteuert)

    do {
        //Anweisungen die wiederholt werden sollen
    } while ( Bedingung) ;

Eingeleitet wird die fußgesteuerte Schleife (Bedingung am Ende) durch den Befehl do. Bei dieser Version ist das Semikolon am Ende wichtig. Bei der fuß-gesteuerten Version werden erst alle Befehle in der Schleife einmal durchgegangen und dann die Bedingung geprüft, ob wiederholt werden soll oder nicht.

Anwendungsbeispiel einer Schleife

Am besten lässt sich der die Anwendung einer Schleife an dem Beispiel der Digitalkamera aus dem Kapitel Arrays beschreiben:
Eine Kamera nimmt ein Bild mit 3 Mio Pixel auf. Anschließend muss jeder Pixel gespeichert werden.
Dort hatten wir das Problem, wie man möglichst einfach 3.000.000 Pixel abspeichert:

Mit Hilfe einer Schleife geht das nun ganz einfach:

    int    aiDigiCam[3000000];
    int    iLoop;
    iLoop = 0;
    while (iLoop < 3000000) {
       aiDigiCam[iLoop] = 0;
       iLoop = iLoop + 1;
    }

Was macht wohl dieser Code?
Richtig, er wiederholt die Anweisungen 3 Mio mal und in jedem Schritt wird die Zahl 0 in dem jeweiligen Array-Feld mit dem Index iLoop abgelegt.
Zu schwierig, dann bitte die vorhergehenden Kapitel nacharbeiten.

Infoblätter und Arbeitsblätter

While-Schleifen
Info: Dieses Arbeitsblatt enthält nochmal eine Erklärung mit Struktogrammen für die do-while und while Schleife. Ebenfalls sind Übungen enthalten

Ticker
Last update:
June 29. 2017 19:48:11