Retour Suite Index

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 
   {
    cout<<"Introduisez un nombre entre 1 et 10 :";
    cin>>N;
   }
while (N<1 || N>10);

Exemple 2

int n, div;
cout<<"Entrez le nombre à diviser : ";
cin>>n;
do
   {
    cout<<"Entrez le diviseur ( 0) : ";
    cin>>div;
   }
while (!div);
cout<<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 <iostream.h>
#include <math.h>
main()
{
 float N;
 do 
   {
    cout<<"Entrer un nombre (>= 0) : ";
    cin>>N;
   }
 while (N < 0); 
 cout<<"La racine carrée de "<<N<<" est "<<sqrt(N);
 return 0;
}

Retour Suite Index