Im letzten Schritt (Vergleiche) hast du gelernt, wie du mit Vergleichen einen Wahrheitswert bekommst. Jetzt nutzen wir diesen Wahrheitswert, um deinem Programm zu sagen, was es tun soll.
Die if-Anweisung
Mit if (englisch für "wenn") führst du einen Codeblock nur dann aus, wenn eine Bedingung true ist. Die Bedingung steht in runden Klammern, der Codeblock in geschweiften Klammern - erinnert dich das an Variablen und den Scope? Genau, ein if-Block ist auch so ein Scope.
int alter = 20;
if (alter >= 18)
{
Console.WriteLine("Du bist volljährig.");
}
Eingabe prüfen, bevor wir sie nutzen
Erinnerst du dich an das int.Parse-Beispiel aus Lass mich etwas eingeben? Dort haben wir einfach darauf vertraut, dass eine gültige Zahl eingegeben wird. Mit if kannst du das jetzt zumindest grob selbst prüfen, bevor du parst:
Console.Write("Wie alt bist du? ");
string eingabe = Console.ReadLine();
if (char.IsDigit(eingabe[0]))
{
Console.WriteLine("Das sieht nach einer Zahl aus.");
}
else
{
Console.WriteLine("Das ist keine Zahl!");
}
Der else-Zweig
Nehmen wir an, die Prüfung von eben war erfolgreich und wir können die Eingabe bedenkenlos in einen int umwandeln. Mit else definierst du dabei gleich eine Alternative für den Fall, dass eine Bedingung nicht zutrifft:
Console.Write("Wie alt bist du? ");
int alter = int.Parse(Console.ReadLine());
if (alter >= 18)
{
Console.WriteLine("Du bist volljährig.");
}
else
{
Console.WriteLine("Du bist noch nicht volljährig.");
}
Mehrere Bedingungen: else if
Manchmal reichen zwei Möglichkeiten nicht aus. Mit else if kannst du weitere Bedingungen anhängen, die der Reihe nach geprüft werden - hier teilen wir das Alter in mehrere Gruppen ein:
int alter = 15;
if (alter < 13)
{
Console.WriteLine("Du bist ein Kind.");
}
else if (alter < 18)
{
Console.WriteLine("Du bist ein Jugendlicher.");
}
else
{
Console.WriteLine("Du bist volljährig.");
}
Kürzer: switch
Wenn du - wie eben - denselben Wert immer wieder mit else if auf Gleichheit prüfst, gibt es dafür eine kompaktere Schreibweise: switch.
int note = 2;
switch (note)
{
case 1:
Console.WriteLine("Sehr gut!");
break;
case 2:
Console.WriteLine("Gut!");
break;
case 3:
Console.WriteLine("Befriedigend.");
break;
default:
Console.WriteLine("Da geht noch was.");
break;
}
Ob du else if oder switch verwendest, ist oft Geschmackssache - bei vielen einzelnen, festen Werten liest sich switch meist übersichtlicher.
Kurz zusammengefasst: Mit if führst du Code nur unter einer bestimmten Bedingung aus, mit else definierst du eine Alternative, mit else if kannst du mehrere Bedingungen nacheinander prüfen, und mit switch hast du bei vielen festen Werten eine übersichtlichere Alternative dazu.