Die Anweisung if


Die if-Anweisung ist die einfachste unter den Entscheidungsanweisungen. Unser nächstes Programm, IFDEMO, zeigt ein Beispiel dafür.

// ifdemo.cpp // Veranschaulicht IF-Anweisung #include <iostream.h> void main() { int x; cout << "Geben Sie eine Zahl ein: "; cin >> x; if (x > 100) cout << "Diese Zahl ist grösser als 100\n"; }

Dem if-Schlüsselwort folgt ein in runden Klammern stehender Prüfausdruck. Wie Sie sehen können, ist die Syntax von if der Syntax von while recht änlich. Der Unterschied besteht darin, daß die Anweisungen, die dem if folgen, nur einmal ausgeführt werden, wenn der Prüfausdruck wahr ist.

Es folgt ein Beispiel der Ausgabe des Programms IFDEMO, wenn die vom Anwender eingegebene Zahl größer als 100 ist:

Geben Sie eine Zahl ein: 2000
Diese Zahl ist grösser als 100

Wenn die eingegebene Zahl nicht größer als 100 ist, wird das Programm beendet, ohne daß eine Ausgabe stattfindet.

Mehrfachanweisung in der Anweisung if

Wie bei den Schleifen kann auch im if-Körber der Kode aus einer einzelnen Anweisung bestehen - wie es im Beispiel IFDEMO gezeigt wird - oder aus einem Block von Anweisungen, die durch geschweifte Klammern abgegrenzt werden. Diese Variation von IFDEMO, die den Namen IF2 trägt, zeigt Ihnen, wie so etwas aussieht:

// if2.cpp // Veranschaulicht If mit mehrer Zeilen umfassendem if-Körber #include <iostream.h> void main() { int x; cout << "Geben Sie ein Zahl ein: "; cin >> x; if (x > 100) { cout << "Die Zahl " << x; cout << " ist grösser als 100\n"; } }

Es folgt die Ausgabe von IF2:

Geben Sie eine Zahl ein: 12345
Die Zahl 12345 ist grösser als 100

if-Anweisungen innerhalb von Schleifen

Die Schleifen- und Entscheidungsstruckturen, die wir bisher kennengelernt haben, können jeweils ineinander plaziert bzw. verschachtelt werden. Sie können if-Anweisungen in Schleifen einbinden, Schleifen in if-Anweisungen, if-Anweisungen in if-Anweisungen und so weiter. Es foögt das Beispiel PRIME das eine if-Anweisung in eine for-Schleife setzt. Dieses Programm sagt Ihnen, ob eine von Ihnen eingegebene Zahl eine Primzahl ist (Primzahlen sind Ganzzahlen, die nur durch sich selbst oder 1 teilbar sind. Die ersten Primzahlen lauten 1, 2, 5, 11, 13, 17 usw.)

// prime.cpp // Veranschaulicht IF-Anweisung mit Primzahlen #include <iosteram.h> #include <process.h> // für exit() void main() { unsigend long n,j; cout << "Geben Sie eine Zahl ein: "; cin >> n; // Zu prüfende Zahl einlesen for (j=2; j < n/2; j++) // Durch jede Ganzzahl ab 2 dividieren, if (n%j == 0) // wenn Rest 0 ist, { // ist die Zahl durch j teilbar cout << "Keine Primzahl. Zahl ist teilbar durch " << j << endl; exit(0); // Programm beenden } cout << "Es handelt sich um eine Primzahl\n"; }

Es folgt ein Ausgabebeispiel:

Geben sie ein Zahl ein: 13
Es handelt sich um eine Primzahl

Geben Sie ein Zahl ein: 22231
Keine Primzahl. Zahl ist teilbar durch 11

(Vorsicht: Wenn Sie eine Zahl eingeben, die wesentlich größer als eine der gezeigten Zahlen ist, und es sich um eine Primzahl handelt, kann die Ausführung des Programms sehr lange dauern.)

Die Anweisung if...else

Die if-Anweisung läßt eine bestimmte Aktion zu, wenn eine Bedingung war ist. Wenn Sie nicht wahr ist, so geschieht nichts. Nehmen Sie aber einmal an, daß eine bestimmte Sache ausgeführt werden soll, wenn eine Bedingung wahr ist, und eine andere Sache, wenn die Bedingung falsch ist. Jetzt kommt die if...else-Anweisung zum Zuge. Sie besteht aus einer if-Anweisung, der eine Anweisung oder ein Block von Anweisungen folgt, dann gefolgt von dem Schlüsselwort else, dem eine andere Andere oder ein Block von Anweisungen folgt.

Hier ist eine Variation unseres if-Beispiel mit einem dem if hinzugefügten else:

// ifelse.cpp // Veranschaulicht IF...ELSE-Anweisung #include <iosteram.h> void main() { int x; cout << "\nGeben Sie eine Zahl ein: "; cin >> x; if (x > 100) cout << "Diese Zahl ist grösser als 100\n"; else cout << "Diese Zahl ist nicht grösser als 100\n"; }

Wenn der Prüfausdruck in der if-Anweisung wahr ist, gibt das Programm eine Mitteilung aus, wenn er falsch ist, gibt er die andere Meldung aus.

Es folgt ein Beispiel für eine Ausgabe:

Geben Sie eine zahl ein: 300
Diese Zahl ist grösser als 100

Geben Sie eine Zahl ein: 3
Diese Zahl ist nicht grösser als 3


20