[Algorithmique] Les structures conditionnelles
Que de mots compliqués pour définir ce que l'on fait tous les jours.
Qu'est-ce qu'un structure conditionnelle ?
Une structure conditionnelle permet en algorithmique de poser des conditions pour effectuer une ou plusieurs actions. Exemple : Si la pièce est allumée, alors j'entre dans la pièce. Sinon je passe mon chemin (oui parce que j'ai peur du noir :p ). Un autre petit exemple : Selon ce qu'il va se passer, soit je prend le métro, soit je prend le bus (Marcher n'est pas une solution, je suis aussi flemmard :) ).
On peut déjà remarquer ici une certaine structure :
Si la pièce est allumée, alors j'entre dans la pièce. Sinon je passe mon chemin.
Selon ce qu'il va se passer, soit je prend le métro, soit je prend le bus.
En Bleu nous avons la structure conditionnelle.
En Orange c'est la condition.
En Vert nous avons l'action à effectuée si la condition est respectée ou non.
Bon elle sont pas très belles mes couleurs mais le principe est la. En algorithmique c'est exactement pareil ! Il existe deux types de structures conditionnelles :
- Si condition alors je fais ça sinon je fais ça
- Selon condition soit je fais ça soit je fais ça
Ce qui donne une fois mis en forme à la sauce algorithme :
je fais ça
Sinon
Je fais ça
Fin Si
Et
cas 1: Je fais ça
cas 2: Je fais ça
Fin Selon
La structure Si
Vous vous souvenez des variable (alias le chapitre précédent) ? Il serait peut être temps de les utiliser, vous ne pensez pas ? Voici un petit exemple de pseudo algorithme : Si ma variable âge est égale à 18 alors j'affiche à l'écran "Bonjour monsieur", sinon j'affiche à l'écran "Salut jeunot".
Maintenant, traduisons ça en algorithme :
afficher_écran "Bonjour Monsieur"
Sinon
afficher_écran "Salut Jeunot"
Fin Si
La structure est fortement similaire au langage courant. Il y a quand même quelques petites remarques à retenir :
- Dans notre condition vous aurez remarqué le "=". Il n'y a plus de ":", comme avec les variables. Dans une condition pour exprimer l'égalité on ne met jamais de ":" avant le égale. L'expression ":=" est réservée pour attribuer une valeur à une variable.
- Lorsque l'on "ouvre" un Si il faut obligatoirement le "fermer" avec le terme Fin Si.
- Le sinon est facultatif.
- La fonction "afficher_écran" est assez parlante d'elle même. Il vous suffit de mettre votre texte entre guillemet pour afficher du texte.
Un autre exemple de structure valable sans le sinon :
afficher_écran "Bonjour"
Fin Si
Maintenant ajoutons la déclaration de variable (Bah oui parce que une variable n'apparaît pas comme par magie) :
Si age = 18 alors
afficher_écran "Bonjour Monsieur"
Sinon
afficher_écran "Salut Jeunot"
Fin Si
Tout ça c'est le B.A.-BA. Heureusement pour nous, la structure Si peut faire un peut plus que ça ! Imaginez que vous aillez une idée en tête et que pour la réaliser vous aillez préparé un plan A, un plan B et un plan C. Ce qui signifie que si telle condition est vraie alors j'exécute le plan A, sinon si telle condition est vérifiée alors j'exécute le plan B, sinon j'exécute le plan C. Vous commencez à avoir une petite idée ? Voila ce que ça donnera appliqué à un algorithme :
j'exécute le plan A
Sinon Si condition2 alors
J'exécute le plan B
Sinon
j'exécute le plan C
Fin Si
Fin Si
Le Sinon Si est souvent utilisé pour gérer plusieurs conditions sur le même élément (ici l'âge). Bien sur le nombre de Sinon Si dépend uniquement de vous. Par contre, il peut n'y avoir qu'un seul Sinon et qu'un seul Si dans une structure. Voici deux exemples d'algorithmes valides :
j'exécute le plan A
Sinon Si condition2 alors
J'exécute le plan B
Fin Si
Fin Si
ou
j'exécute le plan A
Sinon Si condition2 alors
J'exécute le plan B
Sinon Si condition3 alors
J'exécute la plan C
Fin Si
Fin Si
Fin Si
Une dernière petite chose avant d'en finir avec le Si : vous pouvez les imbriquer ! C'est à dire que vous pouvez les mettre les uns dans les autres :
Je fais ça
Sinon Si condition alors
je fais ça Sinon je fais ça
Fin Si
Fin Si
Attention à ne pas oublier de fermer vos Si au bon endroit, sinon c'est le bug assuré ! Je vous rassure on ne va pas tout de suite les enchaîner comme ça ^^.
La structure Selon
Pour ceux qui n'ont pas la force de remonter la page pour voir à quoi ressemble la structure Selon, voici un exemple tout simple:
cas 1: Je fais ça
cas 2: Je fais ça
Fin Selon
Bon d'accord ce n'est pas très parlant. Surtout que les "soit" du début ont disparues. Je vais vous donner un autre exemple pour clarifier tout ça :
cas 1: afficher écran "Salut"
cas 2: afficher_écran "aurevoir";
Fin Selon
Voici la traduction en bon français :
Selon la valeur de la variable "age", dans le cas où elle vaut 1 je fais ça, dans le cas où elle vaut 2 je fais ça.
Vous l'aurez compris, dans le terme "cas X", X représente la valeur que doit prendre la variable pour que l'action se lance. C'est à dire que si la variable vaut 18, c'est le cas n°18 qui exécutera l'action qu'il contient. Par contre, si vous avez 30 possibilités, il faudra mettre 30 cas. Ce n'est pas très pratique mais si vous utilisez la structure pour faire un menu qui compte 3-4 choix, c'est largement suffisant. ;)
Pour l'instant nous utiliserons la structure Selon qu'avec les variables numériques. Il est possible de remplacer les chiffres par du texte (entre guillemets) mais nous l'utiliserons plus tard.
N'oubliez pas :
- De mettre 2 petits points après le numéro du cas (cas 1:, cas 2:, etc.)
- De fermer le Selon avec un Fin selon
Vous l'avez peut être remarqué mais l'utilisation du Si avec des Sinon si est similaire au Selon. Dans la pratique la structure Selon est employée pour les menus (En général ! Pas tout le temps ;) ), le reste est géré par la structure Si. Vous vous ferez bien votre petite idée avec le temps.
Voila nous avons fait le tour des structure conditionnelles ! Vous pouvez relâcher la pression :p
Pour résumer :
- Il existe deux structures conditionnelles : Si et Selon
- Plusieurs possibilités pour une condition peuvent être gérées en ajoutant des Sinon si à votre structure Si
- Chaque Si ouvert doit être fermé, même les Sinon SI !