Kurs

Wie viele andere Anwendungen und Programmiersprachen kennt auch Scala bedingte if-else-Anweisungen. Der if-Block wird ausgeführt, wenn die Bedingung den Wert True hat, andernfalls wird der else-Block ausgeführt (nur, wenn eine else-Anweisung vorhanden ist).
In der Regel hat die else-Anweisung keine eigene Bedingung; sie läuft nur, wenn die if-Bedingung False ist. Kurz gesagt: if-else-Anweisungen bestehen aus booleschen Ausdrücken und arbeiten nach dem True-False-Prinzip.
Es gibt verschiedene Arten von if-else-Anweisungen:
- If-Anweisung,
- If-Else-Anweisung,
- Verschachtelte If-Else-Anweisung,
- If-Else-If-Else-Anweisung.
Bevor du in die verschiedenen if-else-Varianten einsteigst, richten wir schnell die Scala-Umgebung für Mac-Nutzer ein. Folge dazu diesen Schritten.
Hinweis: Stelle sicher, dass Java installiert ist. Falls nicht, folge den Anweisungen hier.
- \$ brew update
- \$ brew install scala
- \$ brew install sbt
- \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
- \$ echo '-J-Xmx2G' >> /usr/local/etc/sbtopts
Wenn du diese Schritte abgeschlossen hast, teste die Installation, indem du im Terminal scala eingibst. Du solltest eine Ausgabe wie unten sehen.

Hinweis: In diesem Tutorial schreibst du den Code im Editor vim und führst ihn im Terminal aus.
Scala if-Anweisung
Die if-Anweisung enthält einen boolean-Ausdruck (true oder false). Trifft der Ausdruck zu, wird der Codeblock innerhalb der if-Anweisung ausgeführt. Ist er false, läuft die erste Codezeile nach dem Ende der if-Anweisung.
if(boolean expression)
{
execute if boolean expression holds true
}
Zuerst definierst du ein object oder eine class namens scala_if. Darin setzt du deine main-Funktion und schreibst den Hauptteil deines Codes. Du erstellst eine Integer-Variable x mit dem Wert 20. Dann kommt der Kern: der if-Block mit der Bedingung x<=20. Da x den Wert 20 hat, wird der Block innerhalb der if-Anweisung ausgeführt.
Speichere den folgenden Code unter if.scala.

Um den Code auszuführen, gib einfach scala if.scala ein. Du solltest dann die folgende Ausgabe sehen.

Scala if-else-Anweisung
Ähnlich wie die if-Anweisung enthält auch die if-else-Anweisung einen boolean-Ausdruck (true oder false). Trifft die if-Bedingung zu, wird der Codeblock innerhalb der if-Anweisung ausgeführt, andernfalls läuft der Codeblock im else-Teil.
if(boolean expression)
{
execute if boolean expression holds true
}
else
{
execute block if boolean expression (if statement) holds false
}
Im folgenden Beispiel wird der else-Teil ausgeführt, da die Variable x einen Wert größer als 20 hat. Der Codeblock im else wird also ausgeführt.
Speichere den folgenden Code unter if-else.scala.

Um den Code auszuführen, gib einfach scala if-else.scala ein. Du solltest dann die folgende Ausgabe sehen.

Verschachtelte if-else-Anweisung in Scala
Wie bei einer normalen if-gefolgt-von-else-Struktur kannst du bei verschachtelten if-else-Anweisungen ein if oder else-if innerhalb eines anderen if oder else-if verwenden.
Im nächsten Abschnitt schauen wir uns die else-if-Anweisungen an.
if(boolean expression 1)
{
execute block 1 if boolean expression 1 holds true**
if(boolean expression 2)
{
execute block 2 if boolean expression 1 and 2 holds true
}
}
Der folgende Code verwendet nested-if-Anweisungen, um vier Integer-Variablen, nämlich $v$, $x$, $y$ und $z$, zu vergleichen. Wenn alle Bedingungen erfüllt sind, wird eine Ausgabe auf dem Terminal ausgegeben.
Speichere den folgenden Code unter nested-if-else.scala.


Scala else-if-Anweisung
Die else-if-Anweisung ist mächtiger als eine einfache if-else-Struktur. Anders als bei if-else, wo auf ein else ein if folgt, ist else-if eine eigene Anweisung. Damit kannst du mehrere Bedingungen prüfen.
Beachte dabei ein paar Regeln für else-if:
-
Ein
else-ifdarf nur auf eineif-Anweisung folgen. Eineif-Anweisung kann null oder mehrereelse-if'shaben. -
Ein
elsedarf nur nachif- undelse-if-Anweisungen kommen. Eineif-Anweisung kann null oder genau einelsebesitzen. -
Sobald ein
else-ifzutrifft, werden alle folgendenelse-if'soderelse'sübersprungen.
if(boolean expression 1)
{
execute block 1 if boolean expression 1 holds true
}
else-if(boolean expression 2)
{
execute block 2 if boolean expression 2 holds true
}
else
{
execute this block if all of the above statements holds false
}
Fazit
Glückwunsch, du hast das Tutorial abgeschlossen.
Dieses Tutorial ist ein guter Einstieg für alle, die die bedingten IF-ELSE-Anweisungen in Scala kennenlernen möchten.
Eine kleine Übung für dich: Schreib ein kurzes Beispiel für eine else-if-Anweisung in Scala und analysiere, wie sie sich von den anderen Varianten unterscheidet.
Referenzen:
Stell gern Fragen zu diesem Tutorial unten in den Kommentaren.