Previous Next Up Index Contents

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)
          {
           printf("%i \n", I);
           I++;
          }

    Exemple 2

    int I;
    /* Afficher les nombres de 0 à 9 */
    I = 0;
    while (I<10) 
          printf("%i \n", I++);
    /* Afficher les nombres de 1 à 10 */
    I = 0;
    while (I<10) 
          printf("%i \n", ++I);

    Exemple 3

    /* Afficher les nombres de 10 à 1 */
    int I=10;
    while (I) 
          printf("%i \n", I--);

    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()==' ') 
             ;


    Previous Next Up Index Contents

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