Cursus

Net als veel andere applicaties en programmeertalen heeft ook Scala voorwaardelijke if-else-instructies. Het if-blok wordt uitgevoerd als de voorwaarde True is; zo niet, dan wordt het else-blok uitgevoerd (alleen als er een else-instructie aanwezig is).
Meestal heeft de else-instructie geen voorwaarde; deze wordt alleen uitgevoerd wanneer de if-voorwaarde False is. Kort gezegd bestaan if-else-instructies uit booleaanse expressies die werken op een True-False-basis.
Er zijn verschillende soorten if-else-instructies:
- If-instructie,
- If-Else-instructie,
- Geneste If-else-instructie,
- If-Else-If-Else-instructie.
Voordat je de verschillende if-else-instructies gaat leren, richten we snel de Scala-omgeving in voor macOS-gebruikers met de onderstaande stappen.
Let op: Zorg dat je Java hebt geïnstalleerd; zo niet, volg dan de instructies hier.
- \$ brew update
- \$ brew install scala
- \$ brew install sbt
- \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
- \$ echo '-J-Xmx2G' >> /usr/local/etc/sbtopts
Als je klaar bent met de bovenstaande stappen, test dan snel de installatie door scala in de terminal te typen; je zou een output moeten zien zoals hieronder.

Let op: In deze tutorial schrijf je de code in de vim-editor en voer je die uit vanuit de terminal.
Scala if-instructie
De if-instructie bestaat uit een expressie die van aard boolean (true of false) is. Als de expressie waar is, wordt het codeblok binnen de if-instructie uitgevoerd; als de expressie onwaar is, wordt de eerste coderegel na het einde van de if-instructie uitgevoerd.
if(boolean expression)
{
execute if boolean expression holds true
}
Eerst definieer je een object of een class met de naam scala_if. Binnen dat object stel je je main-functie in en schrijf je de hoofdcode. Je maakt een geheelgetalvariabele x met de waarde 20. Vervolgens komt de kern van de code: het if-blok met de voorwaarde x<=20. Omdat x de waarde 20 heeft, wordt het blok binnen de if-instructie uitgevoerd.
Sla de onderstaande code op als if.scala.

Om de bovenstaande code uit te voeren, typ je gewoon scala if.scala; je zou een output moeten zien zoals hieronder.

Scala if-else-instructie
Net als bij de if-instructie bestaat de if-else-instructie uit een expressie die van aard boolean (true of false) is. Als de if-voorwaarde waar is, wordt het codeblok binnen de if-instructie uitgevoerd; als die onwaar is, wordt het codeblok binnen de else-instructie uitgevoerd.
if(boolean expression)
{
execute if boolean expression holds true
}
else
{
execute block if boolean expression (if statement) holds false
}
De volgende code zal de else-instructie uitvoeren, omdat variabele x een waarde groter dan 20 heeft; het codeblok binnen de else-instructie wordt dus uitgevoerd.
Sla de onderstaande code op als if-else.scala.

Om de bovenstaande code uit te voeren, typ je gewoon scala if-else.scala; je zou een output moeten zien zoals hieronder.

Scala geneste if-else-instructie
Zoals je meestal een if-instructie gevolgd door een else-instructie hebt, is de geneste if-else-instructie vergelijkbaar van opzet. In een geneste if-else kun je een if- of else-if-instructie binnen een andere if- of else-if-instructie gebruiken.
In de volgende sectie bekijk je de else-if-instructies.
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
}
}
De volgende code gebruikt nested-if-instructies om vier gehele variabelen te vergelijken, namelijk $v$, $x$, $y$ en $z$. Als alle uitspraken kloppen, wordt er uiteindelijk output naar de terminal geprint.
Sla de onderstaande code op als nested-if-else.scala.


Scala else-if-instructie
De else-if-instructie is krachtig vergeleken met de if-else-instructies. Anders dan bij if-else, waar een else wordt gevolgd door een if-instructie, is else-if op zichzelf één instructie. Dit geeft je de vrijheid om meerdere voorwaarden te testen.
Er zijn echter een paar regels om in gedachten te houden bij het gebruiken van else-if-instructies:
-
Een
else-ifmag alleen komen na eenif-instructie; eenif-instructie kan nul of meerelse-if'shebben. -
Evenzo mag een
elsealleen komen naif- enelse-if-instructies; eenif-instructie kan nul of éénelse-instructie hebben. -
Zodra een
else-ifslaagt, worden de resterendeelse-if'sofelse'sniet meer bekeken en direct overgeslagen.
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
}
Conclusie
Gefeliciteerd met het afronden van de tutorial.
Deze tutorial was een goed startpunt voor beginners die de voorwaardelijke IF ELSE-instructies in Scala willen leren.
Een kleine oefening voor jou: schrijf een klein stukje code voor de else-if-instructie in Scala en probeer te begrijpen hoe deze verschilt van de andere vormen.
Referenties:
Stel gerust vragen over deze tutorial in de reacties hieronder.
