Retour Suite Index

6.1. while

La structure while correspond tout à fait à la structure tant que du langage algorithmique. (Si on néglige le fait qu'en C les conditions peuvent être formulées à l'aide d'expressions numériques.)

La structure tant que en langage algorithmique

   tant que (<expression logique>) faire
         <bloc d'instructions>
   ftant

* Tant que l'<expression logique> fournit la valeur vrai,
le <bloc d'instructions> est exécuté.

* Si l'<expression logique> fournit la valeur faux,
l'exécution continue avec l'instruction qui suit ftant.

* Le <bloc d'instructions> est exécuté zéro ou plusieurs fois.

La structure while en C

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

* Tant que l'<expression> fournit une valeur différente de zéro,
le <bloc d'instructions> est exécuté.

* Si l'<expression> fournit la valeur zéro,
l'exécution continue avec l'instruction qui suit le bloc d'instructions.

* Le <bloc d'instructions> est exécuté zéro ou plusieurs fois.

La partie <expression> peut désigner :

  • une variable d'un type numérique,
  • une expression fournissant un résultat numérique.
  • La partie <bloc d'instructions> peut désigner :

  • un (vrai) bloc d'instructions compris entre accolades,
  • une seule instruction terminée par un point-virgule.
  • Exemple 1

    /* Afficher les nombres de 0 à 9 */
    int I = 0;
    while (I<10)
          {
           cout<<I<<endl;
           I++;
          }

    Exemple 2

    int I;
    /* Afficher les nombres de 0 à 9 */
    I = 0;
    while (I<10) 
          cout<<I++<<endl;
    /* Afficher les nombres de 1 à 10 */
    I = 0;
    while (I<10) 
          cout<<++I<<endl;

    Exemple 3

    /* Afficher les nombres de 10 à 1 */
    int I=10;
    while (I) 
          cout<<I--<<endl;
    

    Remarque

    Parfois nous voulons seulement attendre un certain événement, sans avoir besoin d'un traitement de données. Dans ce cas, la partie <bloc d'instructions> peut être vide (notation: ; ou {} ). La ligne suivante ignore tous les espaces entrés au clavier et peut être utilisée avant de lire le premier caractère significatif:

    while (getch()==' ') 
             ;
    

    Retour Suite Index