X
    Categories: Technik

Die If-Anweisung – Ein Programm geht unterschiedliche Wege

Mit Hilfe der If-Anweisung können Sie den Programmfluss verändern. Abhängig von einer Bedingung nimmt das Programm einen anderen Weg.

Ein Programm hat einen Anfang und ein Ende. Doch dazwischen muss nicht immer jede Anweisung ausgeführt werden. Der Programmfluss, also den Weg, welchen ein Programm während der Laufzeit nimmt, kann verändert werden. Ein Werkzeug dazu ist die sogenannte If-Anweisung, welche es Ihnen ermöglicht, Fallabfragen in Ihre Anwendung einzubauen.

Was ist die If-Anweisung?

Bedingungen begleiten uns durch das ganze Leben. Ein Beispiel aus dem Straßenverkehr: „Wenn Sie schneller als die erlaubte Höchstgeschwindigkeit fahren, müssen Sie eine Strafe bezahlen.“ Oder beim Kauf eines Elektrogeräts: „Wenn das Gerät innerhalb der Garantiezeit kaputt geht, wird es kostenlos repariert, sonst müssen Sie die Reparatur selbst bezahlen.“ Sie sehen, dass abhängig von einer Bedingung unterschiedliche Reaktion erfolgen können.

Das Gleiche können Sie auch in Ihrem Programm tun. Die If-Anweisung ermöglicht es Ihnen, eine solche Fallabfrage in Ihr Programm einzubauen. Dazu benötigen Sie mindestens zwei Bestandteile: eine Bedingung und Dann-Anweisungen. Wenn die Bedingung wahr ist, werden die Dann-Anweisungen ausgeführt. Im Verkehrsbeispiel wäre die Bedingung „Wenn Sie schneller als die erlaubte Höchstgeschwindigkeit fahren“ und die Dann-Anweisung „müssen Sie eine Strafe bezahlen“. Beim zweiten Beispiel gibt es noch Sonst-Anweisungen. Diese werden ausgeführt, wenn die Bedingung falsch ist.

Dann kann es noch weitere Bedingungen geben. Ein drittes Beispiel aus dem täglichen Leben: „Wenn heute die Sonne scheint, gehe ich spazieren, wenn es schneit, fahre ich Schlitten, sonst sehe ich mir einen Film an.“ Sie finden in diesem Satz zwei Bedingungen. Der Sonst-Teil wird nur ausgeführt, wenn beide Bedingungen falsch sind, wenn also weder die Sonne scheint noch Schnee fällt.

Einfache If-Anweisungen

Sehen wir uns erst einmal die einfache If-Anweisung an. Sie besteht aus der Bedingung und den Dann-Anweisungen. Im Folgenden sehen Sie die Syntax:

if (Bedingung)

{

// Dann-Anweisungen

}

Eine Bedingung besteht immer aus drei Elementen: ein Wert, ein Vergleichswert und ein Operator. Der Operator bestimmt das Verhältnis, das zwischen den beiden Werten bestehen muss, damit die Bedingung wahr wird. Folgende Operatoren kennt C/C++:

  • gleich: ==
  • ungleich: !=
  • größer: >
  • größer gleich: >=
  • kleiner: <
  • kleiner gleich: <=

Nun sehen Sie einige Beispiele für Bedingungen:

  • Ist die Zahl gleich 4? if (zahl == 4)
  • Ist die Zahl größer als 100? if (zahl > 100)
  • Ist die Zahl kleiner oder gleich 10? if (zahl <= 10)

Nach dieser Bedingung folgen die Dann-Anweisungen in geschweiften Klammern. Die Dann-Anweisungen werden nur ausgeführt, wenn die in der Bedingung gestellte Frage mit „ja“ beantwortet wird. Im Beispiel unten wird der Text nur ausgegeben, wenn die Variable zahl gleich vier ist.

if (zahl == 4)

{

cout << „Die Dann-Anweisungen werden durchgeführt!“;

}

If-Anweisungen mit else

Was geschieht, wenn die Bedingung mit „nein“ beantwortet wird? In diesem Fall werden nicht die Dann-Anweisungen ausgeführt, sondern die Sonst-Anweisungen. Im Falle der If-Anweisungen werden diese mit else eingeleitet. Die Syntax der erweiterten If-Anweisung sieht folgendermaßen aus:

if (Bedingung)

{

// Dann-Anweisungen

}

else

{

// Sonst-Anweisungen

}

Erweitern wir das obige Beispiel ein wenig. Bei jeder anderen Zahl als 4 soll ein anderer Text ausgegeben werden.

if (zahl == 4)

{

cout << „Die Dann-Anweisungen werden durchgeführt!“;

}

else

{

cout << „Die Zahl ist nicht 4!“;

}

Da die Bedingung fragt, ob die Zahl gleich 4 ist, werden die Sonst-Anweisungen immer ausgeführt, wenn die Zahl ungleich 4 ist, also wenn die Bedingung mit „nein“ beantwortet wird. Der else-Zweig muss nicht benutzt werden, denn manchmal benötigt man keine Sonst-Anweisungen. Er darf höchstens einmal vorkommen. Aber Sie können die If-Anweisung noch weiter erweitern.

Komplexe If-Anweisungen

In dem obigen Wetter-Beispiel gibt es zwei Bedingungen. Das Gleiche können Sie auch mit einer If-Anweisung abbilden, indem Sie den else-if-Zweig verwenden. Dieser Zweig enthält eine weitere Bedingung und weitere Dann-Anweisungen. Diese werden ausgeführt, wenn die Bedingung im else-if-Zweig wahr ist. Im Folgenden sehen Sie die Syntax.

if (Bedingung)

{

// Dann-Anweisungen

}

else if (Bedingung)

{

// Weitere Dann-Anweisungen

}

Das folgende Beispiel enthält einen else-if-Zweig. Dieser wird nur ausgeführt, wenn die Zahl gleich fünf ist. In allen anderen Fällen geschieht nichts, da es keinen weiteren else-if-Zweig und auch keinen else-Zweig gibt. Natürlich können Sie auch hier einen else-Zweig einbauen und Sie können in einer if-Anweisung beliebig viele else-if-Zweige verwenden.

if (zahl == 4)

{

cout << „Die Zahl ist vier!“;

}

else if (zahl == 5)

{

cout << „Die Zahl ist 5!“;

}

Sie können alle drei Elemente in einer if-Anweisung kombinieren. Bedenken Sie dabei allerdings, wie oft die Elemente vorkommen dürfen:

  • if-Zweig: genau einmal, muss am Anfang stehen
  • else-Zweig: maximal einmal, muss am Ende stehen
  • else-if-Zweige: beliebig viele

Beispiel

/*

Dieses Beispiel zeigt die If-Anweisung mit einem else-if-Zweig und einem

else-Zweig.

Der Benutzer gibt eine Ganzzahl ein und das Programm ermittelt, ob die Zahl 0,

negativ oder positiv ist.

*/

#include

#include

int main()

{

// Deklarationen.

int zahl;

// Eingabe.

cout << „Bitte geben Sie eine Ganzzahl ein.“;

cin >> zahl;

// Fallabfrage mit Hilfe einer If-Anweisung.

// Ist die Zahl größer als 0, dann ist sie positiv.

if (zahl > 0)

{

cout << „Die Zahl ist positiv!“;

}

else if (zahl < 0) // Ist die Zahl kleiner als 0, ist sie negativ.

{

cout << „Die Zahl ist negativ!“;

}

else // Ist sie weder positiv noch negativ, kann sie nur 0 sein.

{

cout << „Die Zahl ist 0!“;

}

getchar();

}