Previous Next Up Index Contents

6.2. do - while

La structure do - while est semblable à la structure while, avec la différence suivante :

* while évalue la condition avant d'exécuter le bloc d'instructions,

* do - while évalue la condition après avoir exécuté le bloc d'instructions. Ainsi le bloc d'instructions est exécuté au moins une fois.

La structure do - while en C

   do
         <bloc d'instructions>
   while ( <expression> );

Le <bloc d'instructions> est exécuté au moins une fois
et aussi longtemps que l'<expression> fournit une valeur différente de zéro.

En pratique, la structure do - while n'est pas si fréquente que while; mais dans certains cas, elle fournit une solution plus élégante. Une application typique de do - while est la saisie de données qui doivent remplir une certaine condition:

Exemple 1

float N;
do 
   {
    printf("Introduisez un nombre entre 1 et 10 :");
    scanf("%f", &N);
   }
while (N<1 || N>10);

Exemple 2

int n, div;
printf("Entrez le nombre à diviser : ");
scanf("%i", &n);
do
   {
    printf("Entrez le diviseur ( 0) : ");
    scanf("%i", &div);
   }
while (!div);
printf("%i / %i = %f\n", n, div, (float)n/div);

Attention!

do - while est comparable à la structure répéter du langage algorithmique (repeat until en Pascal) si la condition finale est inversée logiquement.

Exemple 3

Le programme de calcul de la racine carrée :

programme RACINE_CARREE
   réel N
   répéter 
       écrire "Entrer un nombre (>=0) : "
       lire N
   jusqu'à (N >= 0)
   écrire "La racine carrée de ",N ,"vaut ", N
fprogramme (* fin RACINE_CARRE *)

se traduit en C par :

#include <stdio.h>
#include <math.h>
main()
{
 float N;
 do 
   {
    printf("Entrer un nombre (>= 0) : ");
    scanf("%f", &N)
   }
 while (N < 0); 
 printf("La racine carrée de %.2f est %.2f\n", N, sqrt(N));
 return 0;
}


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber