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é
En langage C:
do
{printf("Maitre du jeu donnez le juste prix:");
scanf("%f",&justePrix);}
while (justePrix <= 0);
/* traitement des valeurs incorrectes pour
justePrix
*/
do
{
printf("Donnez un prix");
scanf("%f",&prixEssai);
if (prixEssai < justePrix)
printf("C'est plus");
else
if (prixEssai
> justePrix)
printf("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)
printf("Bravo, vous avez
trouvé le juste prix");
else /* on est dans le cas ou nbEssai
est égal à 10 et justePrix != prixEssai */
printf("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