C# – Kontrollstrukturen

C# Anleitung

Kontrollstrukturen

Voraussetzung:

• Ausdrücke und Operatoren in C#

Anwendungsbeispiel:

Das Programm soll eine Entscheidung abhängig eines Wertes treffen. Um dies zu bewerkstelligen brauchst Du Kontrollstrukturen die eine Bedingung abfragen.

Tutorial Kontrollstrukturen

if-Anweisung

Eine if-Anweisung fragt eine Bedingung nach ihrem Wahrheitsgehalt ab. Wie Du im vorherigen Tutorial gelernt hast gibt es Operatoren mit denen man Vergleiche anstellen kann (siehe Tabelle „Logische Operatoren“ im Tutorial Ausdrücke und Operatoren in C#)

Beispiel einer if-Anweisung:

Hier wird abgefragt ob die int-Variable „zahl“ 3 ist. Wenn dies der Fall ist wird in der Konsole der Text „Zahl ist 3“ ausgegeben.
In der Klammer hinter dem if ist also die Bedingung, wenn diese wahr ist (also true) wird der Code nach dem if ausgeführt.
Die geschweiften Klammern sind in diesem Fall nicht zwingend notwendig, da nur eine Anweisung folgt.
Folgen mehr als eine Anweisung benötigst Du die geschweiften Klammern zwingend, da sonst nur die erste Codezeile zum if gehört.

Eine if-Anweisung sieht als Ablaufplan also wie folgt aus:
Kontrollstrukturen_1

(Auf das Bild klicken zum vergrößern)

Das if ist also eine Abfrage nach dem Prinzip „Wenn Bedingung erfüllt, dann …“.

Was passiert danach? Ganz einfach, der Code nach der geschweiften Klammer zu wird ausgeführt.

Für eine erweiterte Abfrage nach dem Prinzip „Wenn Bedingung erfüllt, dann …, andernfalls …“ benötigst Du das else.
Dies fügst Du nach der geschweiften Klammer zu an. Auch hier sind die geschweiften Klammern nur nötig, wenn mehrere Anweisungen folgen.

Beispiel:

Wie beschrieben, kann man hier alternativ auch ohne geschweifte Klammern arbeiten, das sähe wie folgt aus:

Der Ablaufplan sieht mit else einbezogen wie folgt aus:
Kontrollstrukturen_2

(Auf das Bild klicken zum vergrößern)

if-Anweisungen können auch ineinander verschachtelt werden, also in einer if-Anweisung können beliebig viele weitere stehen.

Beispiel:

Wichtig ist hierbei, dass Du Deine else entsprechend platzieren musst um Dir keine logischen Fehler einzubauen. Heißt: Wenn Du eine verschachtelte if-Anweisung konstruierst und ein else für das äußere if einbauen willst, musst Du um das äußere if auch zwangsläufig eine geschweifte Klammer machen. Das kommt daher, dass ein else immer zum nächsten if im vorherigen Code gehört.

Beispiel:

Beabsichtigst Du in diesem Beispiel, dass die Zahl nicht größer als 10 sein darf, ist dieser Code richtig.
Wenn Du allerdings willst, dass die Zahl nicht größer als 5 ist wäre dies falsch. Dafür müsstest Du die geschweiften Klammern nutzen:

In der Praxis ist es auch des öfteren der Fall, dass Du mehrere Bedingungen nacheinander abfragen musst. Zum Beispiel, wenn Du von einer Zahl den Wert ermitteln willst.

(Dies ist keine gute Lösung, sie wird nur zur Veranschaulichung genutzt)
Dieser Programmcode funktioniert soweit, allerdings nimmt die Übersichtlichkeit mit zunehmenden Abfragen ab.
Unter C# gibt es daher die Möglichkeit direkt nach einem else ein if zu schreiben um eine weitere Bedingung abzufragen und den Code daher auch um einiges übersichtlicher macht.

Der ?:-Operator

In Deinem Programmierleben wirst Du merken, dass Du oftmals eine Bedingung nur darauf abfragen musst ob es wahr oder falsch ist und dementsprechend Anweisungen ausführen willst.
Hier kommt der ?:-Operator zum Einsatz.

Ein Beispiel mit if-Anweisung:

Dies kann man mit dem ?:-Operator in einer Zeile zusammenfassen:

Der Aufbau ist: Bedingung ? Wert bei true : Wert bei false

switch Statement

Wenn Du das letzte Beispiel in der if-Anweisung betrachtest, denkst Du Dir vielleicht: „Das ist aber viel zu schreiben, wenn ich die Variable nach mehreren Werten abfragen will!“. Damit hast Du auch Recht.
Dafür gibt es das switch Statement. Im Kopf gibt man die zu überprüfende Variable an und im Codeblock die abzufragende Werte mit case markiert. Das klingt jetzt ein wenig verwirrend, aber ich erkläre es am Beispiel von Code:

Hier gibst Du die zu überprüfende Variable an.

Bei case wird jeweils ein Fall abgefragt, also bei

Der Fall, dass die abzufragende Variable den Wert 1 enthält.

Wenn ein Fall zutrifft (In diesem Beispiel case 2:) wird der Programmcode bis zum nächsten break ausgeführt.

Beschreibt das else, sprich wenn kein case zutrifft wird in den default-Block gesprungen und auch wieder bis zum nächsten break ausgeführt.

Du kannst auch beliebig das break weglassen, ausser beim default-Block. Damit erreichst Du, dass der Programmcode der weiteren cases ausgeführt wird, bis ein break kommt.

Beispiel:

Zum nächsten Tutorial >> C# – Schleifen

Vielleicht gefällt Dir auch...

2 Antworten

  1. 27. Januar 2015

    […] C# – Kontrollstrukturen […]

  2. 18. April 2015

    […] C# – Kontrollstrukturen […]

Schreibe einen Kommentar