Verzweigungen in der Programmierung dienen dazu, Entscheidungen zu treffen. Sie führen bestimmte Teile des Codes nur dann aus, wenn eine bestimmte Bedingung erfüllt ist, andernfalls überspringen sie diese Teile. In vielen Programmiersprachen werden Verzweigungen mit sogenannten "if-Anweisungen" realisiert. Hier ist ein einfaches Beispiel: In einem Programm kann eine Punktzahl eingegeben werden, und das Programm entscheidet, ob die Prüfung bestanden wurde oder nicht.
Das Diagramm zeigt, wie das Programm funktioniert. Jetzt können wir diesen Plan in ein C-Programm umwandeln.
#include <stdio.h>
int main(){
int punkte;
// Ausgabe von Text auf der Kommandozeile
printf("Bitte geben Sie die erreichte Punktzahl ein: ");
// Einlesen der Punkte
scanf_s("%d", &punkte);
// Überprüfung ob 60 oder mehr eingelesen wurde
if (punkte >= 60) {
printf("\nDie Pruefung wurde mit %d Punkten bestanden!\n", punkte);
} else { // falls weniger als 60 eingelesen wurde, wird dieser Teil ausgeführt
printf("\nDie Pruefung wurde NICHT bestanden!\n");
}
return 0;
}
In den folgenden Abschnitten gehen wir genauer auf die verschiedenen Teile dieses Programmcodes ein.
Operatoren werden unter anderem dazu verwendet in einer Verzweigung eine Bedingung zu überprüfen. Aus diesem Grund sind die Vergleichsoperationen für die Verzweigungen sehr wichtig.
In Verzweigungen verwenden wir Vergleichsoperatoren, um Dinge miteinander zu vergleichen. Beispiele für Vergleichsoperator sind < (kleiner als) oder > (grösser als).
Zum Beispiel: wenn wir a < b
haben, vergleichen wir die Werte von a
und
b
. Je nachdem, welche Werte sie haben, ist die Bedingung entweder wahr oder falsch.
Hier sind einige Vergleichsoperatoren:
Vergleichsoperatoren | |
---|---|
> | grösser als |
< | kleiner als |
>= | grösser gleich |
<= | kleiner gleich |
== | gleich |
!= | ungleich |
Logische Operatoren können dazu verwendet werden zwei oder mehrere Vergleichsoperatoren miteinander zu verknüpfen. Es gibt drei verschiedene logische Operatoren:
&&
): Der UND-Operator gibt nur wahr zurück, wenn beide Bedingungen wahr sind.||
): Der Oder-Operator gib wahr zurück, wenn eine der Bedingungen wahr ist.!
): Verneint eine Bedingung. Zum Beispiel, !(x == 10)
ist wahr, wenn x
nicht gleich 10 ist.In C und vielen anderen Programmiersprachen verwenden wir if
für Verzweigungen. Die Bedingung in den Klammern nach
dem if
entscheidet, ob ein bestimmter Code ausgeführt wird oder nicht.
#include <stdio.h>
int main(){
int zahl = 10;
if (zahl == 10) {
printf("Die Zahl ist: %d\n", zahl);
}
return 0;
}
Alles, was in den geschweiften Klammern nach dem if
steht, wird nur dann ausgeführt, wenn die Variable zahl
den Wert
10
hat. Andernfalls wird dieser Teil des Codes übersprungen.
Hinweis: Die Zeile mit dem if
enthält kein ;
.
Manchmal möchten wir auch etwas tun, wenn die Bedingung im if
nicht erfüllt ist. Dafür verwenden wir else
. Wenn die
Bedingung im if
nicht wahr ist, wird der Code im else
-Teil ausgeführt.
#include <stdio.h>
int main(){
int zahl = 11;
if (zahl == 10) {
printf("Die Zahl ist: %d\n", zahl);
} else {
printf("Die Zahl ist nicht 10");
}
return 0;
}
Da zahl
hier den Wert 11 hat, wird der if
Teil übersprungen und der else
Teil wird ausgeführt.
Es ist möglich ein if
in einem anderen if
zu verschachteln. So können mehrere Bedingungen überprüft werden und
verschiedene "Unterkategorien" erstellt werden.
#include <stdio.h>
int main(){
int zahl = 11;
if (zahl > 10) {
printf("Die Zahl ist: %d\n", zahl);
} else {
if (zahl > 0){
printf("Die Zahl ist zwischen 1 und 10");
} else {
printf("Die Zahl ist 0 oder kleiner");
}
}
return 0;
}
In der Programmierung benötigen wir manchmal die Möglichkeit, zwischen verschiedenen Zweigen zu wählen. Dies kann mit
der Hilfe einer switch
-Anweisung erreicht werden. Im
Gegensatz zu if
, bei dem nur zwischen zwei Zweigen gewählt werden kann, ermöglicht switch
die Verzweigung in mehrere
verschiedene Zweige.
Um switch
zu verwenden, benötigen wir eine ganzzahlige Variable oder einen Ausdruck, der als Entscheidungskriterium
dient. Im folgenden Beispiel verwenden wir monat
als unsere Entscheidungsvariable, um abhängig von der Monatszahl den
Monatsnamen auszugeben:
#include <stdio.h>
int main(){
int monat;
// Ausgabe von Text auf der Kommandozeile
printf("Bitte geben Sie eine Monatszahl ein: \n");
// Einlesen der Monatszahl
scanf_s("%d", &monat);
// Die switch-Anweisung ermöglicht die Auswahl des entsprechenden Zweigs basierend auf dem Wert von 'monat'.
switch(monat) {
case 1:
printf("Januar\n");
break;
case 2:
printf("Februar\n");
break;
case 3:
printf("März\n");
break;
case 4:
printf("April\n");
break;
// Wenn 'monat' keinen der oben definierten Werte hat, wird der 'default'-Zweig ausgeführt.
default:
printf("Dieser Monat wurde noch nicht definiert oder ist ungültig.\n");
}
return 0;
}
In diesem Beispiel fragen wir den Benutzer nach einer Monatszahl und verwenden dann switch
, um den entsprechenden Monat
basierend auf der eingegebenen Zahl auszuwählen. Beachte, dass am Ende jedes case
-Blocks ein break
-Statement steht, das
sicherstellt, dass nach Ausführung eines Zweigs der Rest des switch-Statements übersprungen wird.
switch
ist besonders nützlich, wenn du eine grosse Anzahl von möglichen Optionen oder Zuständen in deinem Programm hast
und eine klare Struktur für die Auswahl benötigst.
Verzweigungen in der Programmierung ermöglichen es Code nur unter bestimmten Bedingungen auszuführen. Dies wird häufig mithilfe von if-Anweisungen erreicht. Ein Beispiel verdeutlicht dies: In einem Programm kann der Benutzer eine Punktzahl eingeben, und das Programm entscheidet daraufhin, ob eine Prüfung bestanden wurde oder nicht. Vergleichsoperatoren wie
<
,>
,==
und logische Operatoren wie&&
und||
spielen dabei eine wichtige Rolle. Mitif
kann festgelegt werden, welcher Code ausgeführt wird, wenn eine Bedingung erfüllt ist. Falls nicht, kann einelse
-Teil definiert werden, der ausgeführt wird. Verschachtelte Verzweigungen erlauben es, mehrere Bedingungen zu überprüfen und unterschiedliche Aktionen basierend auf diesen Bedingungen auszuführen. Verzweigungen sind eine grundlegende Kontrollstruktur in der Programmierung und ermöglichen es, Programme flexibel auf verschiedene Situationen reagieren zu lassen.
Die Aufgaben zu Verzweigungen sind auf GitHub zu finden. Die fortgeschrittenen Aufgaben sind in diesem GitHub Repository zu finden.