Die if-Anweisung zur Auswertung in C
Semantik (Verhalten) der bedingten Ausführung
- Syntax-Diagramm
Anweisung
.--. .--. .----------. .--. .-----------.
--->( if )--->( ( )--->| Ausdruck |--->( ) )--->| Anweisung |--->
'--' '--' '----------' '--' '-----------'
Bei der Ausführung if-Anweisung wird der Ausdruck ausgewertet.
Beispiele
Beispiel Auswertung des Ausdrucks
Das folgende Programm zeigt, wie die if-Anweisung ihren Ausdruck auswertet.
In dem folgenden Programm wird bei der Ausführung der if-Anweisung der Ausdruck »puts( "hello, world" )« ausgewertet. Dadurch wird die Zeichenfolge »hello, world!« ausgegeben.
main.c
#include <stdio.h>
int main( void ){ if( puts( "hello, world!" )){} }
stdout
hello, world
Mit Hilfe der if-Anweisung läßt sich nun auch illustrieren, daß es falsch ist, zu sagen, daß jede Anweisung in C mit einem Semikolon abgeschlossen wird, wie man manchmal lesen kann. Denn das voranstehende Programm enthält eine Anweisung, aber kein Semikolon!
Zum Vergleich ein Programm mit der Auswertungsanweisung, das dieselbe Wirkung hat:
main.c
#include <stdio.h>
int main( void ){ puts( "hello, world!" ); }
stdout
hello, world
Beispiel Auswertung des Ausdrucks (1)
Das folgende Programm zeigt, wie die if-Anweisung den Ausdruck »0« auswertet.
main.c
#include <stdio.h>
int main( void ){ if( 0 ){} }
stdout
- (keine Ausgabe)
Da die Auswertung des Ausdrucks »0« keine Wirkung hat, hat hier die Ausführung der gesamten if-Anweisung keine Wirkung.
Übungsfragen
? Wirkung von Ausführungen
Welche Wirkung hat die Ausführung des folgenden Programms? (Ein Aufruf der Funktion »printf« hat den Typ »int«.)
main.c
#include <stdio.h>
int main( void ){ if( printf( "%d\n", 2 )){} }