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 :
La partie <bloc d'instructions> peut désigner :
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()==' ') ;