Les choix imbriqués
61
La première interprétation conduirait à afficher «non ordonné» lorsque la condition a<=b est
fausse, tandis que la seconde n’afficherait rien dans ce cas. Nous adopterons la règle
suivante :
Dans le cas présent, c’est la deuxième présentation qui suggère le mieux la réalité. C’est donc
celle qu’il est conseillé d’adopter pour plus de clarté.
Notez que dès que l’on utilise des délimiteurs de bloc, l’ambiguïté évoquée disparaît. Par
exemple, la formulation suivante n’a plus besoin d’utiliser la règle précédente pour décider
du si auquel s’applique l’unique sinon (nous utilisons un bloc contenant en fait une seule
instruction si) :
si a <= b alors
{ si b <= c alors écrire «ordonné»
sinon écrire «non ordonné»
}
Notez également que la formulation suivante forcerait le sinon à s’appliquer au premier
alors (elle n’écrirait rien quand a <= b et b>c) :
si a <= b alors
{ si b <= c alors écrire «ordonné»
}
sinon écrire «non ordonné»
4.3 Choix imbriqués ou succession de choix
Dans notre calcul de remise du paragraphe 4.1, nous aurions pu éviter l’utilisation de choix
imbriqués en utilisant trois instructions d’exécution conditionnelle :
si montant < 2000. alors taux := 0.
si montant >= 2000. et montant < 5000. alors taux := 1.
si montant >= 5000. alors taux := 2.
ou encore, en utilisant des espaces appropriés
si montant < 2000.
alors taux := 0.
si montant >= 2000. et montant < 5000. alors taux := 1.
si montant >= 5000.
alors taux := 2.
Par rapport à la précédente, cette façon de procéder peut paraître plus lisible. Toutefois, elle
peut conduire à effectuer d’avantage de comparaisons et donc être un peu moins rapide.
Mais, surtout, il faut veiller à ce que ces trois instructions couvrent tous les cas possibles.
Ainsi, supposez que nous érivions :
si montant > 2000. et montant < 5000. alors taux := 1.
au lieu de :
si montant >= 2000. et montant < 5000. alors taux := 1.
Un sinon se rapporte toujours au dernier si rencontré auquel un sinon n’a pas
encore été attribué.
Précédent

- 84/370

Suivant