Entscheidungen in der Programmierung mit Beispielen


Mit Entscheidungen kann man in der Programmierung festlegen unter welchen Bedingungen ein Codeblock ausgeführt wird. Die Thematik wird dir in diesem Tutorial anhand von einem Beispiel erklärt.

Entscheidungen: Alle Befehle


Das IF-Statement

Eine Entscheidung beginnt immer mit dem Keyword IF. Innerhalb einer runden Klammer folgt dann eine Anweisung. Dabei handelt es sich beispielsweise um

  • Bool-Statement: Ist eine Variable true oder false? Führe je nach dem einen bestimmten Code aus.
  • Größer/Kleiner: Führe einen Code aus, abhängig davon ob eine Variable größer oder kleiner ist als der Inhalt einer Variable
  • Ungleich: Führe einen Code nur dann aus wenn zwei Variablen nicht den gleichen Wert innehaben.
  • Kleiner gleich/Größer gleich: Führe den Code nur dann aus, wenn die der Wert zweier Variablen entweder größer gleich oder kleiner gleich ist.

Entscheidungen Symbole

Für diese Bedingungen gibt es in der Programmierung auch eigene Symbole. Diese lauten wie folgt:

==gleich
!=ungleich
<kleiner
>größer
<=kleiner gleich
>=größer gleich
if (bedingung1) anweisung1
text/x-csharp

Das Else IF Statement

Neben dem IF-Statement gibt es noch das sogenannte Else IF Statement. Dieses wird dann eigesetzt wenn ich mehrere Bedingungen abprüfen möchte.

if (bedingung1) anweisung1 else if (bedingung2) anweisung2
text/x-csharp

Das Else Statement

Das Else-Statement wird immer dann verwendet um alle anderen Bedingungen die es neben dem IF und einem möglichen Else IF gibt, abzugreifen. Ein Else Statement kommt also immer am Schluss. Bei einem Else Statement gibt auch keine Anweisung mehr in einer Klammer. 

if (bedingung1) anweisung1 else if (bedingung2) anweisung2 else if (bedingung3) anweisung3 else anweisung
text/x-csharp

Merke: Die Anweisung der Bedingungen folgt immer in geschwungenen Klammern.

Erklärung anhand eines Beispiels


Gehen wir von folgendem Code aus, in welchen wir dann Entscheidungen einfügen werden:

class Program { static void Main(string[] args) { // Variable int zahl = 5; Console.WriteLine("Die Zahl ist ungleich 5"); Console.WriteLine("Die Zahl ist gleich 5"); Console.ReadLine(); } }
text/x-csharp

Fügen wir die Entscheidung in unserem Beispiel ein:

class Program { static void Main(string[] args) { // Variable int zahl = 5; if (zahl != 5) { Console.WriteLine("Die Zahl ist ungleich 5"); } else { Console.WriteLine("Die Zahl ist gleich 5"); } Console.ReadLine(); } }
text/x-csharp

Ersetze die Bedingung einmal durch eine andere, in der zum Beispiel der Operator "kleiner als" oder "größer als" verwendet wird.

Ersetzen wir die konstante Zahl durch eine eingegebene Zahl des Benutzers: Wie man auf die Eingabe von dem Benutzer wartet wurde schon in vorherigen Themen besprochen (Console.Read). Dieser Befehl hat ein Ergebnis (Eingabe des Benutzers), welches wir bisher immer ignoriert haben. Speichern wir es nun in eine Variable. !!Beachte, dass die Eingabe ein String, also ein Text, war und wir diesen String in eine Zahl umwandeln müssen!! Wenn du folgendes eingibst, wird dir vorgeschlagen in was die Eingabe umgewandelt werden kann:   Convert.To

class Program { static void Main(string[] args) { // Variable Console.WriteLine("Triff deine Eingabe"); int zahl = Convert.ToInt32(Console.ReadLine()); if (zahl != 5) { Console.WriteLine("Die Zahl ist ungleich 5"); } else { Console.WriteLine("Die Zahl ist gleich 5"); } Console.ReadLine(); } }
text/x-csharp

Es ist auch möglich, mehrere Bedingungen anzugeben - entweder durch ein "und" oder ein "oder" verknüpft. Das "und" wird mit && ausgedrückt, das "oder" mit ||.

class Program { static void Main(string[] args) { Console.WriteLine("Triff deine Eingabe"); int zahl = Convert.ToInt32(Console.ReadLine()); if (zahl == 5 || zahl == 6) { Console.WriteLine("Die Zahl ist gleich 5 oder 6"); } else if (zahl == 5 && zahl == 6) { //Bedingung kann nicht zu true evaluieren! Console.WriteLine("Hier können wir nicht reinkommen"); } else { Console.WriteLine("Andere Eingabe."); } Console.ReadLine(); } }
text/x-csharp

Das erste if evaluiert hier zu true, wenn die Eingabe entweder 5 oder 6 war. Das else if kann nicht zu true evaluieren, weil "zahl" dann gleichzeitig den Wert 5 und 6 haben müsste, was nicht möglich ist.

Switch - case - Entscheidung


Hierbei wird das Wort in den runden Klammern immer mit einem "ist gleich wie" verbunden zu jedem Case. Dabei ist es wichtig, nach jedem Case einen break-Befehl einzugeben, damit nicht auch noch der restliche Code des Switch Statements ausgeführt wird, sondern das Programm nach dem Ausführen des richtigen Case das Switch Statement abbricht. Wenn kein Case mit der eingegeben Variable übereinstimmt, wird "default" (Standard) aufgerufen. Das folgende Beispiel erläutert dies:

class Program { static void Main(string[] args) { // Wort eingeben Console.WriteLine("Schreibe dein Wort"); String wort = Console.ReadLine(); switch (wort) { case "Hallo": Console.WriteLine("Hallo zurück"); break; case "Klopf Klopf": Console.WriteLine("Wer ist da?"); break; default: Console.WriteLine("Pech gehabt"); break; } Console.ReadLine(); } }
text/x-csharp

Wenn das Programm ausgeführt und ein paar verschiedene Eingaben versucht wurden, fällt vielleicht auf, dass das Programm zwischen Groß- und Kleinschreibung unterscheidet. Damit nicht mehr auf die Groß- und Kleinschreibung geachtet werden muss, wandelt man ALLE Buchstaben in Kleinbuchstaben bzw. in Großbuchstaben um. Die Umwandlung in Kleinbuchstaben wird bei einer String-Variable mit .ToLower() und die Umwandlung in Großbuchstaben mit .ToUpper() durchgeführt. !! Beachte, wenn man die Variable in Kleinbuchstaben umwandelt, müssen die vergleichenden Wörter auch in Kleinbuchstaben sein, dasselbe gilt für Großbuchstaben  !!

switch (wort.ToLower()) { case "hallo": Console.WriteLine("Hallo zurück"); break; case "klopf klopf": Console.WriteLine("Wer ist da?"); break; default: Console.WriteLine("Pech gehabt"); break; }
text/x-csharp

Vollständiger Programmcode für WENN-DANN


class Program { static void Main(string[] args) { // Variable Console.WriteLine("Triff deine Eingabe"); int zahl = Convert.ToInt32(Console.ReadLine()); if (zahl != 5) { Console.WriteLine("Die Zahl ist ungleich 5"); } else { Console.WriteLine("Die Zahl ist gleich 5"); } Console.ReadLine(); } }
text/x-csharp

Vollständiger Programmcode für Switch-Case


class Program { static void Main(string[] args) { // Wort eingeben Console.WriteLine("Schreibe dein Wort"); String wort = Console.ReadLine(); switch (wort.ToLower()) { case "hallo": Console.WriteLine("Hallo zurück"); break; case "klopf klopf": Console.WriteLine("Wer ist da?"); break; default: Console.WriteLine("Pech gehabt"); break; } Console.ReadLine(); } }
text/x-csharp

Sieh dir auch die anderen C# Tutorials an!

Jetzt C# lernen!

Über Digital Dojo

Das Digital Dojo ist der virtuelle Übungsraum von COUNT IT.

Angehende Programmierer*innen, Code-Neulinge, Wiedereinsteiger*innen und Fortgeschrittene finden hier das nötige Rüstzeug für ihre Karriere.

Du möchtest deine Lehre bei COUNT IT starten? Dann bist du hier richtig - besiege deine Gegner im Dojo Game und sichere dir deine Lehrstelle!

Inspire your career.

Newsletter abonnieren

Der COUNT IT Newsletter liefert viermal jährlich interessante Neuigkeiten über das Unternehmen. Gleich anfordern!