Drucken

Nutzen und Aufbau von Schleifen

Immer wenn in einem Programmteil oder auch das ganze Programm wiederholt werden muss, benötigt man Schleifen. C unterscheidet zwischen Zählerschleifen (for()-Schleife) und bedingten Schleifen (while()- und do-while()-Schleife). Schleifen bestehen immer aus einem Schleifen-Kopf bzw. -Fuß und einem Schleifenkörper (gebildet durch {, Befehle, }).


Die Zählerschleife (for-Schleife)

Die for()-Schleife benutzt man immer dann, wenn man weiß, wie viele Durchgänge man benötigt. Die Durchgänge werden mit einer Zählervariablen gezählt. Im Schleifenkopf der for()-Schleife stehen drei Bedingungen für diese Variablen:

for(Startwert; Durchführungsbedingung; Änderungsvorschrift)

 

Beispiel:

/*
Max Mustermann
23.05.2005
...
*/

#include <stdio.h>

void main()
{
   int i;

   for( i = 1 ; i <= 5 ; i++)
   {
     printf("Durchgang %d\n", i );
   };
}

 

Bildschirmausgabe:

Durchgang 1
Durchgang 2
Durchgang 3
Durchgang 4
Durchgang 5

 

{mospagebreak title=  * while-Schleife}

Die kopfgesteuerte Schleife (while-Schleife)

Die while()-Schleife besteht aus einem Schleifenkopf while(Bedingung) und einem Schleifenkörper({Befehle}). Sie hat im Schleifenkopf eine Bedingung stehen. Solange diese Bedingung wahr ist, wird der Schleifenkörper wiederholt.

/*
Max Mustermann
23.05.2005
...
*/

#include <stdio.h>

void main() {
   char a='j';
   
   // Kopfgesteuerte Schleifen
   //(Durchführung so lang Bedingung wahr ist.)
 
   while (a == 'j' ) {
      printf("Noch mal(j/n)? ");
      scanf("%c",&a);
      };
   }


Mögliche Bildschirmausgabe:

Nochmal(j/n)? j
Nochmal(j/n)? j
Nochmal(j/n)? j
Nochmal(j/n)? n

{mospagebreak title=  * do-while-Schleife}

Die fußgesteuerte Schleife (do-while-Schleife)

Die do-while-Schleife hat im Schleifenfuß eine Bedingung stehen. Solange diese Bedingung wahr ist, wird der Schleifenkörper wiederholt.
Fußgesteuerte Schleifen werden mindestens einmal ausgeführt. Kopfgesteuerte Schleifen können keinmal ausgeführt werden, wenn die Bedingung sofort falsch ist.

/*
Max Mustermann
23.05.2005
...
*/

#include <stdio.h>

void main() {
   
   // Fußgesteuerte Schleifen
   //(Durchführung so lang Bedingung wahr ist.)

   do {
      printf("Noch mal(j/n)? ");
      scanf("%c",&a);
      }
   while (a == 'j');
   }

Mögliche Bildschirmausgabe:

Nochmal(j/n)? j
Nochmal(j/n)? j
Nochmal(j/n)? j
Nochmal(j/n)? n

 

{mospagebreak title=  * break / continue}

break / continue

Die beiden Schlüsselwörter break und continue kontrollieren den Verlauf der Schleifen.
Mit continue ist es möglich vorzeitig den nächsten Schleifendurchlauf einzuleiten. Alle folgenden Zeilen werden einfach übersprungen.
break hingegen unterbricht die Schleife vorzeitig. Dabei werden die folgenden Zeilen bis zum Schleifenende übersprungen.

Beispiel für break:

#include <stdio.h>

void main(){

int x;

for (x=1;x<11;x++){
   if (x == 6)
      break;

   printf("Durchgang %d\n",x);
   }
}

Bildschirmausgabe:

Durchgang 1
Durchgang 2
Durchgang 3
Durchgang 4
Durchgang 5


Beispiel für continue:

#include <stdio.h>

void main(){

int x;

for (x=1;x<11;x++){
   if (x == 6)
      continue;

   printf("Durchgang %d\n",x);
   }
}

Bildschirmausgabe:

Durchgang 1
Durchgang 2
Durchgang 3
Durchgang 4
Durchgang 5
Durchgang 7
Durchgang 8
Durchgang 9
Durchgang 10

 

 

Â