Eine Selektion ist eine Entscheidung, welche den weiteren Ablauf des Programms beeinflusst. Das Programm entscheidet anhand einer Bedingung, ob ein Programmblock ausgeführt wird oder nicht.
Die Bedingung einer Selektion beginnt immer mit FALLS (engl. IF). Ist die Bedingung nicht erfüllt, so schreiben wir SONST (engl. ELSE). Gibt es bei SONST nichts zu tun, kann man diesen Block auch weglassen.
1. FALLS du einen Hausschlüssel hast: 1.1. Nimm den Hausschlüssel in die Hand. 1.2. Stecke den Hausschlüssel ins Schloss. 1.3. Drehe den Schlüssel im Uhrzeigersinn. 1.4. Öffne die Tür. 2. SONST: 2.1. Drücke auf den Klingelknopf. 2.2. Warte bis jemand die Tür öffnet. 3. Gehe ins Haus. 4. Schliesse die Tür.
In der Fachliteratur findet man für „Selektion“ auch die Bezeichnungen „Entscheidung“ oder „Verzweigung“.
Der Aufbau einer Selektion ist in vielen Programmiersprachen identisch:
... if (geschlecht == 'W') { System.out.print ("Sehr geehrte Frau"); } else { System.out.print ("Sehr geehrter Herr"); }
Falls der else-Block keine Befehle enthält, können Sie diesen Teil auch weglassen. Die beiden Beispiele führen zum gleichen Programmablauf.
if (alter > 18) { eintritt = 'J'; kosten = 25.00; } else { } | if (alter > 18) { eintritt = 'J'; kosten = 25.00; } |
Eine Bedingung besteht aus drei Teilen:
alter
)>
)18
)Operator | Die Bedingung ist erfüllt, wenn … |
---|---|
== | … die beiden Werte gleich sind. |
!= | … die beiden Werte nicht gleich sind. |
> | … der erste Wert grösser als der zweite Wert ist. |
>= | … der erste Wert grösser oder gleich wie der zweite Wert ist. |
< | … der erste Wert kleiner als der zweite Wert ist. |
⇐ | … der erste Wert kleiner oder gleich wie der zweite Wert ist. |
else
hat niemals eine Bedingung.Wie Sie oben gelernt haben, gibt es bei der Bedingung einer „normalen“ Selektion einen Ja- und einen Nein-Pfad. Bei einer Mehrfachselektion wird die Bedingung so formuliert, dass mehr als zwei Antworten möglich sind.
In Java ist die Syntax für eine Mehrfachselektion wie folgt:
if(Bedingung1){ // Wird ausgeführt wenn Bedingung1 zutrifft. }else if(Bedingung2){ // Wird ausgeführt wenn Bedingung2 zutrifft. }else if(Bedingung3){ // Wird ausgeführt wenn Bedingung3 zutrifft. ... }else if (BedingungX){ ... // Der Code kann um beliebig viele "else-if" ergänzt werden. }else{ // Wird ausgeführt wenn keine der Bedingungen zutreffen. // Der "else-Fall" kann wie bei der Einfach-Selektion aber auch komplett weggelassen werden. }
Der Code wird von oben nach unten ausgeführt, sobald eine Bedingung zutrifft, werden die anderen Bedingungen ignoriert.