Читать книгу C# - Grundlagen für Beginner - Sven Heinrich - Страница 11

Оглавление

Bedingte Anweisungen und Verzweigungen

Beim Programmieren eines Codeabschnittes kommt es häufig vor, dass ein Code nur ausgeführt werden soll, wenn eine bestimmte Bedingung eintritt.

Beispielsweise soll ein Code nur ausgeführt werden, wenn der vorgegebene Wert eine „5“ ist. Du benötigst also die Kontrolle, wann ein bestimmter Codeblock ausgeführt wird.

Doch was heißt das im Einzelnen, bzw. wie kann eine solche Bedingung umgesetzt werden.


„if“-Anweisung

Die erste Variante, eine bedingte Anweisung zu schreiben, ist die if-Abfrage.

if = wenn

Schaue Dir diesmal erst den kompletten Code an:

Was passiert hier? a) Es wird eine Variable vom Typ int mit dem Namen „zahl“ angelegt. b) In der Start-Methode wird „zahl“ einen Wert zugewiesen.


Exkurs „Zufallszahl“

An dieser Stelle lernst Du direkt, wie man eine Zufallszahl programmiert!

Mit folgendem Befehl wird eine zufällige ganze Zahl zwischen int-Minimum (inklusive) und int-Maximum (exklusive) berechnet.

Random.Range(int-Minimum, int-Maximum)

Im Beispiel können die Zahlen 1, 2, 3, 4, 5 und 6 ausgewählt werden (7 ist nicht mit inbegriffen, also exklusiv)

Nachdem nun eine zufällige Zahl vom Programm ermittelt wurde, möchtest Du aber, dass ein bestimmter Code nur dann ausgeführt wird, wenn die vom Programm erstellte Zahl „5“ lautet.

Du beginnst die Anweisung mit dem Schlüsselwort if und nennst in den ()-Klammern die Bedingung, die erfüllt werden muss.

if(Bedingung)

Dabei muss die Bedingung einen Vergleich beinhalten, der entweder als Ergebnis wahr (true: Code wird ausgeführt) oder falsch (false: Code wird nicht ausgeführt) liefert. In diesem Fall lautet die Bedingung

zahl == 5


Vergleichsoperatoren

Zum Vergleichen innerhalb einer Bedingung stehen Dir folgende Vergleichsoperatoren zur Verfügung:


In unserem Beispiel wurde der Vergleich

zahl == 5

als Bedingung vorgegeben. Hinter dieser Bedingung kommt ein Abschnitt, der mit {}-Klammern eingefasst ist. Hier wird der Code geschrieben, der nur dann ausgeführt werden soll, wenn „zahl“ gleich 5 ist.


Mehrere Bedingungen mit logischen Operatoren

Als weiteres Beispiel soll der Code nur ausgeführt werden, wenn zahl1 „5“ und zahl2 „kleiner als 50“ ist:

Hier hast Du als Bedingung zwei Vergleiche die mit && (logischer Operator) verbunden sind. Diese logischen Operatoren stehen Dir für mehrere Vergleiche innerhalb der Bedingung zur Verfügung:



Besonderheit !-Operator

Während && und || selbsterklärend sind, schauen wir uns den !-Operator nochmal genauer an. Dieser wandelt das Ergebnis des Vergleiches in den gegenteiligen Wahrheitswert um. Im Code sieht das Ganze so aus:

Wann wird nun der Code ausgeführt?

Der Vergleich innerhalb der Bedingung besagt: „zahl1 == 5“

Wenn das Programm nun als zahl1 die „2“ zufällig auswählt, dann ist der Vergleich erst einmal falsch (false). Aber durch den !-Operator wird dieser Wert ins Gegenteil gewandelt. Aus falsch (false) wird wahr (true) und der Code wird ausgeführt.

Als Satz geschrieben: Wenn nicht zahl1 gleich 5 ist, dann führe den nachfolgenden Code aus.


Ergänzung

Als Ergänzung soll hier kurz die Klarstellung dienen, dass das obige Beispiel lediglich zur Darstellung des !-Operators dient.

Ansonsten würde für diese Abfrage nämlich eine andere Bedingung wesentlich einfacher sein und verwendet:

if(zahl1 != 5)

Des Weiteren können, sofern der anschließende Code nur eine Anweisung beinhaltet, die {}-Klammern weggelassen werden. Beispiel:

Aber was ist, wenn Du vorhast, dass zwei unterschiedliche Codes, je nach Ergebnis der Bedingung, ausgeführt werden sollen? Beispielsweise Code A wenn die zufällige Zahl tatsächlich 5 beträgt und Code B bei jeder anderen Zahl.


„else“-Anweisung

Hier kommt das else-Schlüsselwort ins Spiel.

else = sonst

Du kannst also folgendes sagen:

Wenn zahl1 gleich fünf, dann führe den Code A aus, sonst führe Code B aus. Im Code sieht es dann so aus:

Dabei ist das if und else immer eine Einheit. Das else-Schlüsselwort steht immer direkt hinter dem if-Codeblock. Allein funktioniert die else-Anweisung nicht.


Noch mehr Möglichkeiten zum Vergleichen

Als letzte Variante möchtest Du einen Code A ausführen, wenn zahl1 gleich 5 ist, sonst einen Code B ausführen, wenn zahl1 gleich 3 ist und sonst einen Code C bei jedem anderen Wert. Hierzu fügst Du ganz einfach eine weitere if-Anweisung hinter dem else ein:

Nicht alles wird überprüft

Beim Ausführen des Programms wird der Code von oben nach unten durchlaufen. Wenn nun bereits die Anweisung „zahl1 == 5“ wahr (true) ist und der Code A ausgeführt wurde, werden alle anderen Abfragen übersprungen.


switch-Anweisung

Eine andere Möglichkeit die Kontrolle zu übernehmen, wann ein Code ausgeführt werden soll und wann nicht, kann über die sogenannte switch-Anweisung erfolgen. Während bei einer if-Anweisung eine Bedingung erfüllt sein muss, um dass der Code ausgeführt wird, wird bei einer switch-Anweisung der Wert einer Variablen verglichen. Aufbau der switch-Anweisung im Code:

Was passiert hier: a) Es wird eine Variable mit dem Typ int und dem Namen zahl1 angelegt. b) zahl1 wird eine Zufallszahl (1, 2, 3, 4, 5 oder 6) zugewiesen. c) Die switch-Anweisung wird mit dem Schlüsselwort switch eingeleitet. d) Hinter switch nennst Du in den ()-Klammern die Variable, die überprüft werden soll, hier: zahl1. e) Nun kann innerhalb von den {}-Klammern die Variable überprüft werden. f) Die Abfrage erfolgt mit dem Schlüsselwort case und einem dahinter festgelegten Wert, der mit zahl1 verglichen wird. Beispiel bei case 1: Im Falle, dass zahl1 gleich 1 ist, führe den Code aus. g) Nach dem Ausführen des ausgewählten Codes wird die switch-Anweisung mit dem Schlüsselwort break beendet.


Aber was ist default?

Mit dem Schlüsselwort default kannst Du innerhalb der switch-Anweisung einen Code hinzufügen, der ausgeführt werden soll, wenn keiner der vorgenannten Fälle (case) passt. Im Beispiel wird also der Code ausgeführt, wenn zahl1 gleich 3 oder 4 ist. In diesem Beispiel prüfst Du einen Wert der Variable int auf dessen Inhalt. Ebenso können wir eine Variable mit anderen Datentypen verwenden, beispielsweise string oder float. Auch der Datentyp bool ist möglich. Allerdings hättest Du dann maximal zwei „case“ (true und false). Hier ist die if-Anweisung oftmals sinnvoller.


C# - Grundlagen für Beginner

Подняться наверх