|
Page updated: 30. Juli 2004
|
Inhalt: if-else
Anweisung - Vergleichsoperatoren - Logische Operatoren
Demoprogramme gruss.c und gruss_und_fehler.c
if-else
Anweisung. |
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.
Vergleichsoperatoren. |
TOP 
|
Vergleiche liefern einen Boole'schen Ausdruck (wahr oder
falsch).
- Syntax:
<Vergleich> ::= <Ausdruck>
<Vergleichsoperator> <Ausdruck>
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.
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:
- 0 bei Gleichheit der Zeichenketten
- einen Wert größer 0, wenn die erste Zeichenkette
größer als die zweite ist
- einen Wert kleiner 0, wenn die erste Zeichenkette kleiner als
die zweite ist
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")) ...
Logische
Operatoren. |
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