4. Kontrollstrukturen

Kontrollstrukturen erlauben es uns, gewisse Werte zu überprüfen und eine Folgereaktion daraus zu starten. Haben wir z.B. eine Variable des Datentyps int mit dem Wert 10, so wollen wir eine Konsolenausgabe tätigen, welche uns darüber informiert, dass die Zahl grösser als 0 ist. Sollte die Zahl kleiner als 0, oder in diesem Fall genau 0 sein, so sollen wir darüber informiert werden, dass die Zahl kleiner oder genau 0 ist.

Eine Kontrollstruktur wird immer mit einem if gestartet. Anschliessend legen wir die Bedingung in den Klammern fest. Nun kommt die Folge, für den zutreffenden Fall, in geschweifte Klammern. Um eine Alternative zu bieten, schreiben wir direkt nach der schließenden geschweiften Klammer else. Nun kommt die letzte logische alternative, quasi die letzte Möglichkeit in einem Ausschlussverfahren, in geschweifte Klammern.

int zahl = 10;
if (zahl > 0){
Console.WriteLine("Die Zahl ist grösser als 0");
}else{
Console.WriteLine("Die Zahl ist 0 oder kleiner");
}


Eine Kontrollstruktur kann natürlich nicht nur aus einer einzigen Bedingung bestehen. Wir haben die Möglichkeit mehrere Bedingungen für eine Folge festzulegen. Z.B. möchten wir eine Kontrollstruktur programmieren, welche überprüft, ob eine Zahl in einem bestimmten Zahlenbereich liegt. Der Zahlenbereich erstreckt sich von und mit 0 bis und mit 100.

int zahl = 50;
if (zahl >= 0 && zahl <= 100){
Console.WriteLine("Die Zahl ist im Zahlenbereich");
}else{
Console.WriteLine("Die Zahl befindet sich nicht im Zahlenbereich");
}

Eine Kontrollstruktur muss nicht unbedingt aus einem int bestehen, sie kann auch von allen anderen Datentypen sein.  Nehmen wir an, wir schmeißen eine Party mit eingeladenen Gästen. Die Kontrollstruktur soll für uns überprüfen, ob die Person auf der Gästeliste steht oder nicht. Um zu überprüfen, ob ein Wert mit einem vorgegebenen Wert übereinstimmt, benutzen wir die .Equals Methode. Der zu vergleichende String wird in die Parameter Klammern geschrieben.

String name = "Hans";
if (name.Equals("Hans")){
Console.WriteLine("Die Person ist auf der Gästeliste");
}else{
Console.WriteLine("Die Person ist nicht auf der Gästeliste");
}

Weitere Operatoren für Kontrollstrukturen findest du in der Folgenden Tabelle:
kontrollstrukturen1jpg


In C# unterscheiden wir zwischen Vergleichen von Zahlen und Zeichenketten. Vergleichen wir Zahlen, so nutzen wir den == Operator. Möchten wir aber Zeichenketten vergleichen, so nutzen wir üblicherweise die .Equals Methode. Meistens wird zwar auch bei String Vergleichen ein korrektes Ergebnis ausgegeben, wenn mit dem == Operator gearbeitet wird, allerdings sollte man unbedingt darauf achten, dass man das vermeidet. In folgenden Beispiel ist verdeutlicht, wie die .Equals Methode und der == Operator korrekt eingesetzt werden.

String name = "Peter";
int alter = 15;            
if (name.Equals("Peter") && alter == 15){     Console.WriteLine("Der Name ist Peter und er ist 15 Jahre alt");
}else{     Console.WriteLine("Falsche Person");
}
 

4.2 switch-case

Eine Kontrollstruktur muss nicht zwingend aus einem if und einem else Teil bestehen. Unter Umständen kann es nützlich sein, die sogenannte switch-case Kontrollstruktur zu verwenden. Sie ist besonders dann hilfreich, wenn wir eine bestimmte Anzahl an Ausgängen bereits kennen und eine dieser garantiert eintreffen sollte. Im folgenden Beispiel untersuchen wir eine Person nach ihrer Funktion in einer Unternehmung. Switch-case ist so aufgebaut, dass wir zunächst die zu untersuchenden Werte definieren. In unserem Fall die Variabel name. Anschließend definieren wir die möglichen Ausgangsfälle, oder auch cases. In unserer Unternehmung arbeiten vier Personen, zwei davon als Berater. Dementsprechenden benötigen wir drei cases, wobei ein case gleich bei zwei Mitarbeitern zutrifft. Bei zwei oder mehreren Fällen die bei einem case zutreffen, schreiben wir jeweils alle untereinander auf. Um die Folge zu definieren, setzen wir ein Doppelpunkt hinter jedes case. Nachdem das geschehen ist, breaken wir nach jedem case den Prozess. Eine Besonderheit beim switch-case ist der default. Er ist quasi wie ein Auffangbecken für alles was nicht zutrifft. Anders als bei der if-else Kontrollstruktur, ist diese keine logische Konsequenz aus einem Ausschlussverfahren, sondern für all das zuständig was uns nicht weiter interessiert. In unserem Beispiel fängt der default alle Personen auf, die nicht in unserer Unternehmung arbeiten.

String name = "Jonas";
switch(name){
    case "Ralf":
        Console.WriteLine("Kassierer");
        break;
    case "Tom":
    case "Jonas":
        Console.WriteLine("Berater");
        break;
    case "Andrea":
        Console.WriteLine("Logistiker");
        break;
    default:
        Console.WriteLine("Die Person ist kein Mitarbeiter");
        break;
}
 
 

Stelle uns deine Frage


Julien Rösch


 

Amazon

 

E-Book

 

Gefällt dir CodeStarter?