Cours

Comme dans de nombreuses applications et langages de programmation, Scala propose des instructions conditionnelles if-else pour la prise de décision. Le bloc conditionnel if est exécuté si la condition est vraie ; sinon, c’est le bloc else qui s’exécute (uniquement si une instruction else est présente).
Généralement, l’instruction else n’a pas de condition ; elle s’exécute uniquement lorsque la condition du if est fausse. En bref, les instructions if-else reposent sur des expressions booléennes, à évaluation True-False.
Il existe différents types d’instructions if-else :
- If,
- If-Else,
- If-else imbriqué,
- If-Else-If-Else.
Avant d’aborder ces différentes variantes, configurons rapidement l’environnement Scala pour les utilisateurs de Mac en suivant les étapes ci-dessous.
Remarque : Assurez-vous que Java est installé. Le cas échéant, suivez les instructions fournies ici.
- \$ brew update
- \$ brew install scala
- \$ brew install sbt
- \$ echo '-J-XX:+CMSClassUnloadingEnabled' >>
/usr/local/etc/sbtopts
- \$ echo '-J-Xmx2G' >> /usr/local/etc/sbtopts
Une fois ces étapes effectuées, testez rapidement l’installation en tapant scala dans le terminal ; vous devriez obtenir un résultat semblable à celui ci-dessous.

Remarque : Dans ce tutoriel, vous écrirez le code dans l’éditeur vim et l’exécuterez depuis le terminal.
Instruction if en Scala
L’instruction if contient une expression de nature booléenne (vrai ou faux). Si l’expression est vraie, le bloc de code à l’intérieur du if s’exécute ; si elle est fausse, l’exécution reprend à la première ligne après la fin du if.
if(boolean expression)
{
execute if boolean expression holds true
}
Vous allez d’abord définir un object ou une class nommé(e) scala_if. Dans cet objet, vous définirez votre fonction main et y écrirez le corps principal du code. Vous créerez une variable entière x avec la valeur 20. Enfin, le cœur du code : le bloc if avec la condition x<=20. Comme x vaut 20, le bloc à l’intérieur du if sera exécuté.
Enregistrez le code ci-dessous sous le nom if.scala.

Pour exécuter ce code, tapez simplement scala if.scala. Vous devriez obtenir un résultat similaire à celui ci-dessous.

Instruction if-else en Scala
Comme pour l’instruction if, l’instruction if-else repose sur une expression booléenne (vrai ou faux). Si le if est vrai, le bloc à l’intérieur du if s’exécute ; sinon, c’est le bloc à l’intérieur du else qui s’exécute.
if(boolean expression)
{
execute if boolean expression holds true
}
else
{
execute block if boolean expression (if statement) holds false
}
Dans l’exemple suivant, c’est le bloc else qui s’exécute car la variable x a une valeur supérieure à 20 : le code du else est donc exécuté.
Enregistrez le code ci-dessous sous le nom if-else.scala.

Pour l’exécuter, tapez simplement scala if-else.scala. Vous devriez obtenir un résultat comme ci-dessous.

Instruction if-else imbriquée en Scala
Comme vous avez généralement un if suivi d’un else, l’instruction if-else imbriquée suit le même principe. Vous pouvez placer un if ou un else-if à l’intérieur d’un autre if ou else-if.
Dans la section suivante, vous verrez les instructions else-if.
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
}
}
Le code suivant utilise des instructions nested-if pour comparer quatre variables entières, $v$, $x$, $y$ et $z$. Si toutes les conditions sont satisfaites, un message est affiché dans le terminal.
Enregistrez le code ci-dessous sous le nom nested-if-else.scala.


Instruction else-if en Scala
L’instruction else-if est plus flexible que les simples if-else. Contrairement aux séquences où un else est suivi d’un if, else-if constitue une instruction à part entière, qui vous permet de tester plusieurs conditions successives.
Quelques règles à garder en tête lorsque vous utilisez else-if :
-
Un
else-ifne peut apparaître qu’après unif; unifpeut comporter zéro, une ou plusieurs brancheselse-if. -
De même, un
elsene peut apparaître qu’après desifetelse-if; unifpeut comporter zéro ou une seule brancheelse. -
Dès qu’un
else-ifréussit, leselse-ifet leelsesuivants sont ignorés.
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
}
Conclusion
Félicitations pour avoir terminé ce tutoriel.
Ce tutoriel constitue une bonne introduction pour les débutants souhaitant apprendre les instructions conditionnelles IF ELSE en Scala.
Petit exercice : écrivez un court morceau de code utilisant else-if en Scala et analysez en quoi ces instructions diffèrent des autres.
Références :
N’hésitez pas à poser vos questions sur ce tutoriel dans les commentaires ci-dessous.