Les itératives: variante 1 (do ... while)
demander("Tapez un nombre compris entre 1 et 5", nombre);
while (nombre < 1 || nombre > 5)
       
demander("Tapez un nombre compris entre 1 et 5", nombre);
Le problème de cette version est que l'on est obligé de répéter le demander ce qui semble redondant
nombre = 6;
while (nombre < 1 || nombre > 5)
       
demander("Tapez un nombre compris entre 1 et 5", nombre);
Cette version résout le problème du demander redondant mais force l'entrée dans la boucle par une initialisation  totalement artificielle de nombre
    1) Il faut demander au moins une fois le nombre à l'utilisateur.
    2) Le condition de l'itérative porte justement sur une variable qui est initialisée dans le corps de
         l'itérative.


==> L'itérative do ... while (faire ... tant que). Pour cette itérative la condition est à la fin de l'itérative donc le corps de l'itérative est exécuté au moins une fois.

Reprenons notre exemple: 

do
    {
     instruction1;

      ...
     instructionx;
      }

while (expressionBool);
/* fin du do ... while */

do
   
demander("Tapez un nombre compris entre 1 et 5", nombre);
while (nombre < 1 || nombre > 5);
/* fin du do ... while */

Dans cette version, il n'y a pas redondance, il n'y a pas d'initialisation artificielle. Le do ... while est  parfaitement adapté à ce genre de problème.
suivant         plan