8.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 sehen Sie 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("%u", &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; }
Abbildung 8.3 zeigt den Programmablaufplan dazu:
Abbildung 8.3 Programmablaufplan mit »if else if«
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.