10.2 Die Verzweigung mit else if
Was ist, wenn die erste Bedingung im Listing zuvor wahr ist, d.h. die Zahl größer als 18 ist? Dann nimmt das Programm als nächsten Schritt dennoch die Überprüfung vor, ob die Zahl kleiner als 18 und gleich 18 ist. Das ist eigentlich nicht mehr notwendig. Sie können dies mit else if verbessern:
else if(alter > 18) {
printf("Sie sind volljährig\n");
}
else if(alter == 18) {
printf("Den Führerschein schon bestanden?\n");
}
Hier die Syntax dazu:
if(BEDINGUNG1 == wahr) {
Anweisung1;
}
else if(BEDINGUNG2 == wahr) {
Anweisung2;
}
Anweisung3;
Ist die Bedingung1 wahr, wird die Anweisung1 im Anweisungsblock ausgeführt, und die Kontrollstruktur ist fertig. Ist Bedingung1 nicht wahr, wird die Bedingung2 überprüft. Ist Bedingung2 wahr, wird Anweisung2 ausgeführt, und das Programm endet. Ist aber auch Bedingung 2 nicht wahr, wird die Anweisung 3 ausgeführt.
Das Programmbeispiel sieht in der neuen Fassung so aus:
/* if3.c */
#include <stdio.h>
int main(void) {
unsigned int alter;
printf("Wie alt sind Sie: ");
scanf("%d", &alter);
if(alter < 18) {
printf("Sie sind noch nicht volljährig\n");
}
else if(alter > 18) {
printf("Sie sind volljährig\n");
}
else if(alter == 18) {
printf("Den Führerschein schon bestanden?\n");
}
printf("Bye\n");
return 0;
}
Der Programmablaufplan dazu:
Hier klicken, um das Bild zu Vergrößern
Abbildung 10.3
Programmablaufplan if-else if
|