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.
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}Bereitgestellt von
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}Bereitgestellt von
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.
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-if darf nur auf eine if-Anweisung folgen. Eine if-Anweisung kann null oder mehrere else-if's haben.
Ein else darf nur nach if- und else-if-Anweisungen kommen. Eine if-Anweisung kann null oder genau ein else besitzen.
Sobald ein else-if zutrifft, werden alle folgenden else-if's oder else's übersprungen.
if(boolean expression 1){
execute block 1if boolean expression 1 holds true}else-if(boolean expression 2){
execute block 2if boolean expression 2 holds true}else{
execute this block if all of the above statements holds false}Bereitgestellt von
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.
Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Wie viele andere Anwendungen und Programmiersprachen kennt auch Scala bedingte
if-else-Anweisungen. Derif-Block wird ausgeführt, wenn die Bedingung den Wert True hat, andernfalls wird derelse-Block ausgeführt (nur, wenn eineelse-Anweisung vorhanden ist).In der Regel hat die
else-Anweisung keine eigene Bedingung; sie läuft nur, wenn dieif-Bedingung False ist. Kurz gesagt:if-else-Anweisungen bestehen aus booleschen Ausdrücken und arbeiten nach demTrue-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
scalaeingibst. Du solltest eine Ausgabe wie unten sehen.Hinweis: In diesem Tutorial schreibst du den Code im Editor
vimund führst ihn im Terminal aus.Scala if-Anweisung
Die
if-Anweisung enthält einenboolean-Ausdruck (true oder false). Trifft der Ausdruck zu, wird der Codeblock innerhalb derif-Anweisung ausgeführt. Ist er false, läuft die erste Codezeile nach dem Ende derif-Anweisung.Zuerst definierst du ein
objectoder eineclassnamensscala_if. Darin setzt du deinemain-Funktion und schreibst den Hauptteil deines Codes. Du erstellst eine Integer-Variablexmit dem Wert 20. Dann kommt der Kern: derif-Block mit der Bedingungx<=20. Daxden Wert 20 hat, wird der Block innerhalb derif-Anweisung ausgeführt.Speichere den folgenden Code unter
if.scala.Um den Code auszuführen, gib einfach
scala if.scalaein. Du solltest dann die folgende Ausgabe sehen.Scala if-else-Anweisung
Ähnlich wie die
if-Anweisung enthält auch dieif-else-Anweisung einenboolean-Ausdruck (true oder false). Trifft dieif-Bedingung zu, wird der Codeblock innerhalb derif-Anweisung ausgeführt, andernfalls läuft der Codeblock imelse-Teil.Im folgenden Beispiel wird der
else-Teil ausgeführt, da die Variablexeinen Wert größer als 20 hat. Der Codeblock imelsewird also ausgeführt.Speichere den folgenden Code unter
if-else.scala.Um den Code auszuführen, gib einfach
scala if-else.scalaein. 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 verschachteltenif-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.
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 einfacheif-else-Struktur. Anders als bei if-else, wo auf einelseeiniffolgt, istelse-ifeine 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.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.