Schleifen



 Schleifen
 

Was sind Schleifen?
Schleifen werden dazu verwendet, eine immer wieder vorkommende Sequenz von Befehlen mehrfach auszuführen. Dazu bedient sich die Schleife entweder eines Zählers oder einer bereits deklarierten Bedingung. Diese Bedingungen oder Zähler werden dann so lange abgearbeitet, bis sie erfüllt wurden und somit nicht mehr wahr sind.
In diesem Kapitel wollen wir uns unter beiden C verwendeten Schleifen-Befehlen widmen.
 
 
 

 For-Schleife
 

Eine For-Schleife wird dazu verwendet, einen angegebenen Anfangswert so lange zu verändern, bis schließlich eine Bedingung erfüllt wurde.
Hier ein kleines, aber aussagekräftiges Beispiel:
 
 

 #include <stdio.h>

     main()
      {
          int erste;
          int zweite;
          for (erste = 1 ; erste <= 9 ; erste = erste+1)
               {
                   for (zweite = 2 ; zweite <= 10 ; zweite = zweite +1)
                   printf("%ld*%ld=%ld ", erste , zweite, zweite *erste );
                   printf(" \n");
               }
          }
 
 

Funktionsweise:

Mir dieser Schleife generieren Sie das "Ein mal Eins".
Das Programm deklariert am Anfang unsere Variablen "erste" und "zweite", bis er dann schließlich die erste Schleife erreicht.
Dort fängt er bei Zählerstand erste=1 und führt die Schleife aus. Diese wird durch zwei Klammern
gekennzeichnet, was aber bei bestimmten Voraussetzungen entfallen kann. Dazu aber erst später.
Als nächstes trifft unsere Schleife auf eine weitere Schleife, die sofort ausgeführt wird.
Das Programm beginnt die zweite Schleife ab dem Wert 2 zu durchlaufen. So wird bei jedem Durchlauf dieser Schleife der Zählerstand um 1 erhöht (zweite = zweite +1), bis schließlich die vorgegebene Zahl (in unserem Fall ist es 10) erreicht wird.
Da wir keine Klammern gesetzt haben, wird bei jedem Durchlauf der Schleife nur der direkt unter der Schleife stehende Befehl (printf )ausgeführt und zwar jedesmal, wenn die Schleife "Zwei" durchlaufen wird.
Durch diese Technik können wir unsere oberste Zeile der "Ein mal Eins"-Tabelle berechnen.
Das Programm verläßt die Schleife "Zwei", macht einen Absatz (printf(" \n");) und kehrt zurück zur ersten Schleife.
In dieser wird der Zählerstand wieder um einen Zähler erhöht und der Schleifenkern ausgeführt.
In unserem Falle ist es wieder unsere zweite Schleife, die wiederrum von 2 bis 10 zählt und unsere zweite Zeile berechnet.
Dieser Vorgang wird so lange ausgeführt, bis unsere erste Schleife den Wert 10 erreicht hat.
 
 
 

 while-Schleifen
 

Eine weitere Möglichkeit, Schleifen unter Linux zu bilden, ist der Einsatz der while-Schleife.

Bei dieses Schleifenart unterscheiden wir zwei Sorten:

 "while"
 "do-while"

Eine while-Schleife ist ähnlich unserer For-Schleife aufgebaut.

Die Syntaxbeschreibung solch einer Schleife sieht folgendermaßen aus:

 while  (Bedingung)
  {
  Schleifenanweisung
  }

Diese können daher ähnlich einer For-Schleife, Programme zeitlich ablaufen lassen und bedingungsgesteuert ausführen.
Um Ihnen ein Beispiel zu zeigen, versuchen wir das obengenannte Programm in einer while-Schleifenart zu realisieren. Der Quellcode sieht dann folgendermaßen aus:
 
 

        #include <stdio.h>

        main()
          {
              int erste = 0;
              int zweite = 1;
              while (erste++ <= 8)
               {
                   while (zweite++ <= 9)
                   printf("%ld*%ld=%ld ", erste , zweite, zweite *erste );
                   printf(" \n");
                   zweite = 1;
               }
          }
 
 
 

Funktionsweise:

Wir deklarieren als erstes unsere Variablen erste und zweite. Dazu belegen wir diese mit einem Wert, da im späteren Verlauf kein Wert mehr zugewiesen wird.
Unser Programm befolgt weiter seinen Weg und führt deshalb die erste Schleife aus.
In dieser wird als erstes unsere Variable erstes um einen Zähler ( erste++ ) erhöht und dann nach Erfüllung der Bedingung überprüft ( <=8 ). Da bei erstem Durchlauf diese noch nicht erfüllt ist, führt das Programm die sich in eckigen Klammern befindende Anweisungsschleife aus.
Dort wird ebenfalls die Variable zwei um einen Zähler erhöht ( zweite++ ) und die Bedingung überprüft ( <=9 ). Da diese auch noch nicht erfüllt ist, führt das Programm den nächsten Befehl aus ( printf... ).Nachdem dies überprüft wurde, kehrt die Schleife wieder zurück und erhöht noch einmal den Wert von zweite um einen Zähler. Dieser Vorgang wird so lange ausgeführt, bis die Anweisung <=9 wahr ist.
Nachdem dies geschehen ist, setzt das Programm seinen Lauf fort und produziert einen Absatz ( printf(" \n"); ).

Nun müssen wir wieder die Variable zwei zurücksetzen, damit beim nächsten Durchlauf das Programm von vorne rechnet und nicht die Zahl weiter erhöht.
Da unsere erste Schleife noch nicht erfüllt wurde ( <=8 ) kehrt das Programm wieder zur Schleife eins zurück und erhöht wieder den Wert der Variablen eins um einen Zähler, überprüft die Abhängigkeiten und führt wieder die Schleife zwei aus.
Dort wird wieder von vorne, unsere zweite Zeile berechnet, da wir zuvor den Wert der Variable  zwei zurückgesetzt haben. Dadurch wurde ermöglicht, daß Schleife zwei wieder von vorne rechnen kann.
 

Dieser Vorgang wird so lange wiederholt, bis die Schleife eins erfüllt wurde ( erste++ <= 8 ) und somit das Programm beendet werden kann.
Um ein wenig Einblick der Funktionsweise des Programmes zu gewinnen, versuchen Sie, die Variablen etwas zu verändern und beobachten Sie dann, welche Folgen es für den Ablauf des Programmes haben wird.
Wenn Sie z.B. den Wert der ersten Schleife von 8 auf 18 setzen, dann werden Sie beobachten können, daß ihr Programm nicht wie im obengenannten Beispiel bis 9 rechnet, sondern erst bei 19 halt macht.
 
 
 
 

Nächster Themenbereich:
Funktionen und Klassen
DEMON