Meist müssen wir Anhand von bestimmten Bedingungen entscheiden, welcher Code ausgeführt werden soll. Zu diesem Zweck stellt uns C# unter anderem die Schlüsselwörter if und else zur Verfügung. Deren Verwendung möchte ich dir in diesem Beitrag näherbringen.
1. If, else und else if in C#
Um Code zu definieren, der nur ausgeführt wird, wenn eine bestimmte Bedingung zutrifft, kannst du die Bedingung nach dem Schlüsselwort if angeben.
int zahl = 5; if (zahl < 10) { Console.WriteLine("kleiner als 10"); } // kleiner als 10
Für einzeilige Anweisungen kannst du den Codeblock auch ohne geschweifte Klammern schreiben.
int zahl = 5; if (zahl < 10) Console.WriteLine("kleiner als 10"); // kleiner als 10
Um Code zu definieren, der ausgeführt wird, wenn die if-Bedingung nicht zutrifft, kannst du else verwenden.
int zahl = 5; if (zahl < 5) { Console.WriteLine("kleiner als 5"); } else { Console.WriteLine("größer oder gleich 5"); } // größer oder gleich 5
Du kannst weitere Bedingungen definieren, indem du else if verwendest.
if (zahl < 5) { Console.WriteLine("kleiner als 5"); } else if (zahl == 5) { Console.WriteLine("gleich 5"); } else { Console.WriteLine("größer als 5"); } // gleich 5
Auch hier kannst du bei einzeiligen Anweisungen die geschweiften Klammern weglassen. So ist das folgende Beispiel gleich dem Vorigen:
if (zahl < 5) Console.WriteLine("kleiner als 5"); else if (zahl == 5) Console.WriteLine("gleich 5"); else Console.WriteLine("größer als 5"); // gleich 5
2. Kurzschreibweise der C# if-else Bedingung mit dem ? : Operator
Kurze if-else-Blöcke kannst du stattdessen auch mit dem ternären Operator ausdrücken.
<Bedingung> ? <Rückgabewert bei True> : <Rückgabewert bei False>
Praktisch kannst du das so implementieren:
int i = 3; string s1 = i > 5 ? "True" : "False"; Console.WriteLine(s1); // False string s2 = i < 5 ? "True" : "False"; Console.WriteLine(s2); // True
3. Der C# Null-Koaleszenz-Operator ??
Um zu überprüfen, ob eine Variable null ist und, wenn ja, einen anderen Wert zurückzugeben, kannst du den sogenannten Null-Koaleszenz-Operator ?? verwenden.
string s1 = null; Console.WriteLine(s1 ?? "String ist NULL"); // String ist NULL string s2 = "Foobar"; Console.WriteLine(s2 ?? "String ist NULL"); // Foobar
4. Fazit
Das if-Statement ist ein mächtiges Werkzeug, um zu bestimmen, welcher Code unter welcher Bedingung ausgeführt werden soll. Es gehört ebenfalls zum Standardrepertoire der meisten höheren Programmiersprachen. In C# ist die Handhabung dieses Konstruktes sehr einfach. Neben der C# if-Verzweigung steht dir unter anderem auch das C# switch case Konstrukt zur Verfügung, um ebensolche Logiken einzubauen.
Wenn du noch Fragen, Anmerkungen, Kritik oder Lob hast, dann schreib mir bitte einen Kommentar!
Geil erklärt. Brauche das für meinen Vortrag und möchte deshalb kein Geld ausgeben. Aber diese Seite hat das einfach und verständlich erklärt.
Hey Gabriel,
danke für das nette Lob!
Wir hoffen das dein Vortrag gut läuft :)
Hi, Danke für die Erläuterung. Mir ist noch nicht klar, wo bei "if" der Unterschied in diesen beiden Varianten liegt:
bei "if (boolsche-Variable)" {mach was} macht das script was,
bei "if (boolsche-Variable = true) {mach was} macht es nichts. Warum eigentlich?
VG Jörg
Hey Jörg,
eigentlich sind beide Zeilen identisch zu verstehen, denn beide werden nur ausgeführt, wenn die boolesche-Variable true ist.
Folgender Code:
bool meinbool = true;
if (meinbool) {
System.Console.WriteLine("Das ist wahr");
}
if (meinbool == true){
System.Console.WriteLine("Das ist auch wahr");
}
führt bei mir zu folgender Konsolenausgabe:
Das ist wahr
Das ist auch wahr
Hast du vielleicht bei der zweiten Variante das doppelte Gleichzeichen vergessen?
Beste Grüße
Pero