Literatur

if-Anweisungen

Eine weitere einfache Kontrollstruktur ist die einfache Alternative oder auch if-Anweisung genannt. Die if-Anweisung dient zur bedingten Ausführung von Anweisungen. Die if-Anweisung hat folgende Struktur:

/* Wenn der boolesche Ausdruck wahr (true) ist, dann führe Anweisung1 aus, ansonsten mache nichts */
if ( Boolescher-Ausdruck )
     Anweisung1;

Die if-Anweisung startet mit dem Schlüsselwort if, gefolgt von einem booleschen Ausdruck in runden Klammern. Die runden Klammern sind ein Muss. Der boolesche Ausdruck ist die Bedingung für die Ausführung der Anweisung1. Ist die Bedingung wahr (true), so wird die Anweisung ausgeführt. Die obige Schreibweise einer if-Anweisung ist allerdings so nur möglich, wenn nach der Bedingung nur eine Anweisung folgt. Sollen mehrere Anweisungen unter einer Bedingung ausgeführt werden, so mus der if-Bedingung ein Anweisungsblock folgen. Wir empfehlen Ihnen, selbst bei nur einer Anweisung Anweisungsblöcke zu verwenden. Dies bietet zwei Vorteile: Zum Einen wird der Quell-Code übersichtlicher und zum Anderen werden mögliche Fehler reduziert, weil man vielleicht doch später noch weitere Anweisungen hinzufügen möchte, aber das nachträgliche Hinzufügen der Klammern schnell vergisst.

Mit Anweisungsblock sieht die if-Anweisung in etwa so aus:

/* Wenn der boolesche Ausdruck Wahr (true) ist, dann führe Anweisung1 bis AnweisungN aus, ansonsten mache nichts. */
if ( Boolescher-Ausdruck )
{
    Anweisung1;
    Anweisung2;
    ...
    AnweisungN;    
}

Die if-Anweisung kann aber noch mit dem sogenannten else-Zweig erweitert werden. Die Anweisungen im else-Zweig werden dann ausgeführt, wenn der boolesche Ausdruck falsch (false) ist. Auch für den else-Zweig gilt, dass eine einzelne Anweisung keinen Anweisungsblock erfordert, mehrere hingegen müssen in geschweiften Klammern zusammengefasst werden. Wir wollen hier  jedoch nur mit Anweisungsblöcken arbeiten.

/* Wenn die Bedingung wahr (true) ist, dann führe Anweisung1 und
Anweisung2  aus */
if ( Bedingung )
{
    Anweisung1;
    Anweisung2;
}
/* Ansonsten führe Anweisung3 und Anweisung4 aus. */
else
{
    Anweisung3;
    Anweisung4;
}

Ausformuliert bedeutet das obige Beispiel:
„Wenn die Bedingung wahr ist, dann führe Anweisung1 und Anweisung2 aus, ansonsten führe Anweisung3 und Anweisung4 aus.“

Die if-Anweisung wird im Deutschen auch als Wenn-Dann-Anweisung bezeichnet.

Man kann auch mehrere if-Anweisungen schachteln. Man spricht dann von einer mehrfachen Alternative:

// Wenn die Bedingung wahr (true) ist, dann führe  Anweisung1 aus.
if ( Bedingung1 )
{
   Anweisung1;
}
// Ansonsten führe Anweisung2 unter der Bedingung2 aus.
else if (Bedingung2 )
{
   Anweisung2;
}
/* Falls Bedingung1 und Bedingung2 nicht wahr sind führe Anweisung3 aus.*/
else
{
   Anweisung3;
}

Hier hätte auch die zweite if-Anweisung in einem eigenen Anweisungsblock stehen können, was die Lesbarkeit des Quelltextes erhöht:

/* Wenn die Bedingung wahr (true) ist, dann führe Anweisung1 aus. */
if ( Bedingung1 )
{
   Anweisung1;
}
/* Ansonsten führe den else-Zweig aus. */
else
{
    if (Bedingung2 )
   {
      Anweisung2;
   }
   /* Falls Bedingung1 und Bedingung2 nicht wahr sind, führe Anweisung3 aus.*/
   else
   {
      Anweisung3;
   }
}


Durch diese Schreibweise wird gleich sichtbar, dass es sich um eine geschachtelte if-Anweisungen handelt und dass die Anweisung3 nur unter der Vorraussetzung, dass die erste und zweite Bedingung falsch ist, ausgeführt werden kann.

Kommen wir nun zu einigen Beispielen für die if-Anweisung. Wir möchten Sie bitten, zu überlegen, welcher Teil der Anweisungen ausgeführt wird und warum. Zu jedem Beispiel gibt es auch wieder eine Schaltfläche, mit der Sie die Lösung erfahren können.

Beispiel 1:

int a=5, b=6;
 
if(a<b)
{
    a=b;
}
else
{
    b=a;
}


Beispiel 2:

int a=5, b=6, c=7;
 
if(a<b)
{
    if(b<c)
    {
      a=c;
    }
}


Beispiel 3:

int a=5, b=6, c=7;
 
if(a>b)
{
    a=b;
}
else
{
    if(a<c)
    {
      a=c;
    }
}

Wir möchten Sie an dieser Stelle dazu ermuntern, ein wenig mit den if-Anweisungen zu experimentieren. Erstellen Sie eine Startklasse, nehmen Sie sich die Beispiele oder erstellen sich selbst welche und modifizieren Sie die Variablen und die Bedingungen, um sich vertrauter mit bedingten Anweisungen zu machen.