Switch case
Une valeur, des cas, un default — et ce sur quoi il fonctionne.
Une chaîne de if/else if devient vite illisible quand on teste la même valeur contre dix
possibilités. switch la remplace.
@entry(demarrer)
object MonProgramme {
demarrer() {
var jour := 2;
switch (jour) {
case 1:
Console.print(text: "lundi");
break;
case 2:
Console.print(text: "mardi");
break;
default:
Console.print(text: "un autre jour");
}
}
}
Une valeur, des cas, une porte de sortie
switch (jour) évalue la valeur une fois, puis cherche le case qui lui correspond. Trouvé,
il exécute ce qui suit. Aucun ne correspond, il prend le default.
Le break ferme le cas : il fait en sorte que les cas suivants ne soient pas exécutés.
Le default n’est pas obligatoire, mais son absence a une conséquence : une valeur qu’aucun
case ne prévoit ne fait alors rien du tout, en silence. L’écrire, ne serait-ce que pour
signaler l’inattendu, coûte deux lignes.
Sur quoi il fonctionne
Les entiers et les textes, rien d’autre. Un switch sur un texte compare les contenus,
comme le = de la section 3 :
switch (nom) {
case "simon":
Console.print(text: "connu");
break;
default:
Console.print(text: "inconnu");
}
Il n’y a pas de switch sur un objet. Un branchement là-dessus s’écrit avec des if.
À vous
- Donnez à
jourune valeur qu’aucuncasene prévoit : ledefaultrépond. - Retirez le
breakdecase 1:et mettezjourà 1 : deux lignes s’affichent. - Retirez le
defaultet donnez une valeur imprévue : le programme n’affiche rien, et ne s’en plaint pas. C’est exactement le silence qu’undefaultévite. - Réécrivez le même choix en
if/else ifet comparez les deux à la lecture.