Algorithmique impérative/Condition
Vous savez que les instructions s'exécutent les unes après les autres. C'est intéressant mais insuffisant pour élaborer des algorithmes complexes. En effet, nous pourrions avoir besoin d'exécuter certaines instructions seulement dans un certain contexte. Les structures permettant d'imposer la succession des instructions sont appelées structures de contrôles. L'exécution conditionnelle, que nous allons voir ici, est la plus simple de ces structures de contrôles.
SI...ALORS...
modifierL'exécution conditionnelle permet de n'exécuter une instruction que si une certaine condition est remplie. La syntaxe est la suivante :
SI condition ALORS instruction FINSI
condition
est une expression booléenne. L'instruction n'est exécutée que si cette l'expression booléenne est évaluée àVRAI
. Sicondition
est évaluée àFAUX
aucune instruction n'est exécutée. Dans les deux cas, le programme poursuit son exécution par ce qui se trouve après le FINSI.instruction
est une instruction normale. Vous pouvez bien sûr exécuter plusieurs instructions : il suffit pour cela d'un bloc d'instructions.
Exemples
modifierSI FAUX ALORS Afficher("Cet affichage ne se produira jamais, la condition n'étant jamais VRAI") FINSI
Cet extrait d'algorithme n'a aucun intérêt. S'il est effacé du programme, on obtient un programme équivalent.
SI VRAI ALORS Afficher("Cet affichage se produit toujours") FINSI
Cet extrait d'algorithme n'a aucun intérêt. Il aurait évidemment suffit d'écrire :
Afficher ("Cet affichage se produit toujours")
...SINON
modifierIl est possible de préciser une instruction à exécuter si la condition n'est pas vérifiée, c'est-à-dire si elle est évaluée à FAUX
. Il suffit pour cela d'ajouter une partie SINON
entre ALORS
et FINSI
. Cette partie SINON
n'est pas toujours utile, elle est donc facultative.
SI condition ALORS instruction SINON instruction FINSI
Exemples
modifierSI condition ALORS Afficher("La condition vaut VRAI") SINON Afficher("La condition vaut FAUX") FINSI
Une équivalence utile
modifierRemarquez que ces deux blocs conditionnels sont équivalents :
SI condition ALORS instruction_A SINON instruction_B FINSI
SI non(condition) ALORS instruction_B SINON instruction_A FINSI