Programmieren in ANSI-C Kapitel 5: Kontrollstrukturen
5.1 Die for - Schleife
Bei der for-Schleife handelt es sich um eine Schleife, deren Ausführung nach einer vorher bestimmten
Anzahl von Durchläufen abbricht. Eine for-Schleife hat immer folgende Struktur:
for( Initialisierung; Fortsetzungsbedingung; Nachlaufanweisung ){ Anweisungen; }
Bei der Initialisierung wird eine Zählervariable angegeben, die zur Erzeugung der Schleife
verwendet wird. Der Anweisungsblock wird dann solange ausgeführt, bis die Fortsetzungs
-Bedingung nicht mehr erfüllt ist. Die Nachlaufanweisung(en!) gibt an, was am Ende jedes Schleifendurchlaufs
geschieht. Die Nachlaufanweisung könnte auch im Anweisungsblock stehen, wird jedoch zur
Strukturierung in die for-Anweisung gezogen.Einige Beispiele zum Verständnis:
Die Baisc-Anweisung For index = 1 to 100 Step 10: Next index würde in C/C++ so aussehen:
for
( index = 1; index <= 100; index = index + 10)
|
In C muss die Variable 'index' natürlich vorher definiert werden. Seit C++ gibt es
die Möglichkeit, die Variable in der for-Anweisung selbst zu definieren:
for
( int zähler = 0; zähler < 100; zähler++ ) printf(" %d ", zähler);
|
Ersichtlich kann man auf die Blockklammern verzichten, wenn man nur eine Anweisung mit
der Schleife wiederholen will. Die Schleife gibt alle Zahlen von 0 bis 99 hintereinander aus.
Natürlich kann man Schleifen auch Schachteln. Das sieht dann so aus wie dieses Progrämmchen,
dass das kleine 1x1 ausgibt.
5.2 Die while - Schleife
Die while-Schleife unterscheidet sich in C/C++ kaum von der for-Schleife. Der Kern bleibt die Abbruchbedingung,
die Allerdings zur Fortsetzungsbedingung wird. Die Schleife wird solange durchalufen, wie die Bedingung
erfüllt ist. Um einen evtl. Zähler muss sich der Programmiere im Anweisungsblock kümmern.
Je nachdem ob die Bedingung am Anfang oder am Ende der Anweisungen geprüft werden muss, wird
aus einer while-Schleife eine Do-while-Schleife. Steht die Bedingung am Ende des Anweisungs-Blocks,
muss der Block durch eine Do-Anweisung eingeleitet werden. In der Praxis kann so etwas so aussehen:
5.3 Die if - Abfrage
Die if-Abfrage ist die klassische Möglichkeit, in einerm Programm in Abhängigkeit von
Parameterwerten in verschiedene Programmteile zu verzweigen. Die Struktur sieht so aus:
if( Bedingung ) {Anweisungen; } else {Anweisungen;}
5.4 Die switch - Abfrage
Die switch-Abfrage ähnelt der if-Abfrage in großen Teilen. Es können nur mehrere Fälle geprüft werden.
Man stelle sich zum Beispiel vor, ob in einem Menü die Zahl 1, 2 oder 3 gedrückt wurde.
switch( Variablenname )
{
case [Ausdruck1]:
Anweisungen;
break;
case [Ausdruck2]:
Anweisungen;
break;
default:
Anweisungen;
break;
}
|
|