Programmieren
 
 
 
 
 
C-Grundkurs

 
 
 
 
.. WHILE  -Schleife
 
 

 
 
 
 


Die while -Schleife ist eine Schleifenkonstruktion, bei der der Befehlsblock der Schleife nicht durchlaufen werden muss.








while - Schleife

Stößt die Programmausführung auf eine while –Zeile, merkt sie sich die Position der Zeile und prüft die LaufBedingung in den runden Klammern.
Ist die Bedingung wahr (log 1), wird der Befehlsblock durchlaufen. Bei der letzten Klammer des Befehlsblocks findet ein Rücksprung zur while –Anfangszeile statt. Ist die Bedingung falsch (log 0), wird der nächste Befehl hinter dem Befehlsblock ausgeführt und das Programm linear fortgesetzt. Man sagt, die while-Schleife sei kopfgesteuert.

Variante: Wenn der while - Programmblock nur aus einer Anweisung besteht, können die Blockklammern {..} entfallen.

while (LaufBedingung) eine Anweisung;

Sonderfall: Wenn die while - Bedingung durch ++ oder -- veränderbar ist und keine Anweisung benötigt wird, muss hinter der letzten runden Klammer ein Semikolon folgen. (Software Zeitschleifen)

while (LaufBedingung);








Siehe auch das Kapitel über logische Bedingungen


 


 

 

 

 


Beispiel:



#include <conio.h>

// enthält die Deklaration für ..




// printf( )



void main (void)

// Definition der Funktion main



{




 int n=10;

// Variable für die Laufbedingung initialisieren



 while (n <= 20)

// Schleifenstart



 {

// solange n<=20 ist, Anweisungsblock
// durchlaufen



  printf ("%d",n);

// n ausgeben



  n = n+2;

// n um 2 erhöhen, damit die Schleife
// abbrechen kann



 }




 printf("Schleifenende");




}

// n größer 20


 


 


Anmerkung:
Verändern Sie in obigem Beispiel die Laufbedingung auf n=20, dann wird die Schleife nicht einmal durchlaufen.

Achtung:
Damit eine while Schleife irgendwann einmal abbricht, muss in ihrem Anweisungsblock der Parameter für die Laufbedingung, im Beispiel der Variableninhalt n, geändert werden.

Weitere Wege eine while Schleife zu unterbrechen sind z.B. if () -Abfragen, die den Befehl 'break' oder den Befehl 'return' enthalten. Dabei beendet break nur die Schleife, und return die Funktion, in der sich die while Schleife befindet.

Ein letzter Befehl im Zusammenhang mit der while–Schleife ist der Befehl 'continue'. Soll vor dem Ende des Anweisungsblocks erneut zum Schleifenanfang gesprungen werden, um die Laufbedingung zu überprüfen wird dies durch den Befehl 'continue' eingeleitet, der normalerweise in einer if() -Abfrage auftritt.


 


 


Zusammenfassung



  • Die 'Laufbedingung' wird immer am Anfang der Schleife geprüft.

  • Der Anweisungsblock der while–Schleife wird nicht durchlaufen, wenn die Laufbedingung bereits beim Eintritt in die Schleife falsch ist.

  • Die Parameter der Laufbedingung müssen im Anweisungsblock geändert werden, damit keine unendlichen Schleifen entstehen

  • Folgt der while -Schleife nur eine Anweisung, können die Blockklammern '{' und '}' entfallen.

  • Besitzt eine while -Schleife keine Anweisung, so endet sie mit einem ; z.B. int n=1; while (n++ <10000);





www..de