C Verzweigung


Page updated: 30. Juli 2004


Inhalt: if-else Anweisung - Vergleichsoperatoren - Logische Operatoren

Demoprogramme gruss.c und gruss_und_fehler.c


Item if-else Anweisung. TOP TOP

Für die Verzweigung steht die if Anweisung zur Verfügung. Die Überprüfung, ob eine bestimmte Anweisungsfolge ausgeführt werden soll, steht am Anfang der Verzweigung in runden Klammern. Wenn (engl. if) die Prüfung (Boole'sche Ausdruck) «Wahr»  ist, dann wird die Anweisung 1 ausgeführt (bei «Falsch» wird Anweisung 1 nicht ausgeführt) - danach die dem if Befehl folgende Anweisung. Ist diese keine optionale else Anweisung, handelt es sich um die Verzweigung ohne Alternative.

Ist die der Anweisung 1 folgende Anweisung jedoch eine optionale else Anweisung (dt. andernfalls), wird Anweisung 2 nur ausgeführt, falls der Boole'schen Ausdrucks bei der Prüfung «Falsch» ergab: Verzweigung mit Alternative.

Syntax:
<if Anweisung> ::= if (<Boole'scher Ausdruck>) <Anweisung 1>; [else <Anweisung 2>;]

Ermittlung von
«Wahr» oder «Falsch»
Ausführung bei
«Wahr»
Ausführung bei
«Falsch»

Hinweis: Zur Darstellung von «Wahr» oder «Falsch» in C siehe Syntax zu Konsolenausgaben und Konstanten!


Wenn mehr als eine Anweisung im Ja-Fall oder im Nein-Fall programmiert werden soll, ist ein Anweisungsblock zu verwenden. Das bedeutet für die if / else Anweisung, daß man im Ja-Fall die eine einzelne Anweisung 1 durch einen Anweisungsblock aus mehreren Anweisungen in geschweifte Klammern { } ersetzen kann, jedoch entfällt in diesem Fall das Semikolon vor else bei einer Verzweigung mit Alternative. Das entsprechende gilt für die Anweisung 2 hinter else, die ebenfalls durch einen Block aus mehreren Anweisungen ersetzt werden kann. Syntax siehe bei Programmaufbau.

Item Vergleichsoperatoren. TOP TOP

Vergleiche liefern einen Boole'schen Ausdruck (wahr oder falsch).
Vergleichsoperatoren sind:
Priorität Vergleichsoperatoren
7 <   kleiner
>   größer
<=  kleiner oder gleich
>=  größer oder gleich
8 ==  gleich
!=  ungleich (nicht gleich)

Hinweis: Auch Einzelzeichen vom Typ char können per Vergleichszeichen verglichen werden. Welches Zeichen größer oder kleiner ist, richtet sich nach seinem Wert in der Zeichencode Tabelle.


Achtung!Zeichenketten im C-Stil können Sie nicht mit obigen Vergleichsoperatoren überprüfen, dafür gibt es die Funktion strcmp(), zum Gebrauch ist Einbindung mit Präprozessoranweisung #include <string.h> notwendig. Diese Funktion liefert:
Zum Compilerfehler führt:

char Text[10]="Hallo";
...
if (Text == "Hallo") ...


Richtig wäre:

#include <string.h>
...
char Text[10]="Hallo";
...
if (! strcmp(Text, "Hallo")) ...


Item Logische Operatoren. TOP TOP

Logische Operatoren für NICHT, UND bzw. ODER in C:
Priorität Logische Operatoren
2 !   Logisch NICHT
12 &&  Logisch UND
13 ||  Logisch ODER

Beachten Sie die Prioritäten von Rechenoperatoren, Vergleichsoperatoren und logischen Operatoren. Prioritäten können durch Klammerung von Ausdrücken mit ( ) durchbrochen werden.

Dr. J. Kubiak j.kubiak@gmx.net