Cas
particulier: les conditions de sortie multiples non exclusives
Objectif:
Vérifier quelle(s) condition(s) a (ont) provoqué la
sortie de l'itérative.
Exemple (extrait de l'algorithme):
Un jeu où l'utilisateur doit essayer de
trouver un prix. L'utilisateur a 10 essais possibles, pour chaque essai
le programme affiche si le juste prix est inférieur ou
supérieur au prix qu'il a donné
Corps de
l'algorithme détaillé:
do
demander("Maitre du jeu donnez le juste prix:",
justePrix);
while (justePrix <= 0);
/* traitement des valeurs incorrectes pour
justePrix
*/
do
{ nbEssai = nbEssai +1;
demander("Donnez un prix",
prixEssai);
if (prixEssai < justePrix)
afficher("C'est plus");
else
if (prixEssai
> justePrix)
afficher("C'est moins");
/* fin du if (prixEssai > justePrix) */
/* fin du if (prixEssai <
justePrix) */
}
while (nbEssai
!= 10 && justePrix != prixEssai); /*
on sort si nbEssai est égal à 10 ou justePrix est
égal à prixEssai */
/* maintenant il faut savoir pourquoi on
est sorti de l'itérative */
if (prixEssai =
= justePrix)
afficher("Bravo, vous avez
trouvé le juste prix");
else /* on est dans le cas ou nbEssai
est égal à 10 et justePrix != prixEssai */
afficher("Désolé
vous avez perdu");
/* fin du if (prixEssai =
=
justePrix) */
/* fin du programme */
|
Remarque:
On ne peut pas inverser le test. D'abord
tester si
nbEssai = =
10 car on afficherait "perdu" alors qu'il peut avoir gagné
au dixième essai.
|
suivant
plan