|
Création d'une classe permettant de dessiner un carré | Carre & TestCarre |
|
Création d'une classe permettant de dessiner un triangle rectangle | TriangleRectangle & TestTriangleRectangle |
|
Création d'une classe permettant de dessiner un triangle isocèle | TriangleIsocele & TestTriangleIsocele |
|
Création d'une classe permettant de dessiner un sablier | Sablier & TestSablier |
Qu'est-ce qu'une boucle ? A quoi cela peut-il servir ?
Dans de nombreux programmes, il est souvent nécessaire de répéter
un certain nombre de fois un ensemble d'instructions. Pour pouvoir effectuer
cela, les langages de programmations proposent deux alternatives : la notion
de boucle et la notion de récursivité. nous allons pour l'instant
nous limiter aux notions de boucles proposées par le langage Java
: les boucles pour (for) et les boucles tant que (while).
I La boucle pour (for) :
La boucle pour est a utiliser lorsque l'on sait le nombre de répétitions
(ou d'itérations) que l'on aura à faire. Ainsi si je veux
calculer la factorielle d'un nombre, je sais le nombre de multiplications
que j'aurai à effectuer. Au niveau de la syntaxe, la boucle for
est constituée d'une expression contenant trois parties et d'un
corps de boucle. Le corps de la couple contient les instructions qui vont
etre répétées, tandis que l'expression composée
de trois parties sert à définir les conditions initiales,
le critère d'arret et la mise à jour de la boucle :
|
La première partie de l'expression permet d'initialiser un compteur, la seconde exprime la condition qu'il faut vérifier pour rester dans la boucle, tandis que la dernière partie permet de préciser comment le compteur évolue lorsque l'on arrive à la fin de la boucle.
Exemple : On désire afficher à l'écran une
suite d'entiers dont l'utilisateur précisera la borne inférieure
et la borne supérieure.
C:\Java> java Suite
Entrez la borne inférieure : 5 Entrez la borne supérieure : 9 5 6 7 8 9 C:\Java> |
On peut utiliser une boucle pour, puisque l'on
connait le nombre d'itérations à effectuer (borneSup - borneInf
+ 1). On aura ainsi :
class Suite |
On initialise le compteur à la valeur de la borne inférieure, ensuite on défini la condition qu'il faudra vérifier pour rester dans la boucle (on utilise un inférieur ou égal car l'on désire que la borne supérieure soit affichée), enfin on décrit la mise à jour du compteur. Le corps de la boucle ne consiste qu'à afficher la valeur du compteur (le compteur évoluant entre la borne inférieure et la borne supérieure).
II La boucle tant que (while) :
La boucle while est a utiliser lorsque l'on ne connait pas le nombre
d'itérations que l'on aura à faire. Ainsi si je propose un
jeu à l'utilisateur pour qu'il puisse y rejouer autant de fois qu'il
le désire, je ne connais pas le nombre de jeux à effectuer.
Au niveau de la syntaxe, la boucle while est constituée d'une
condition et d'un corps de boucle. Le corps de la couple contient les instructions
qui vont etre répétées, tandis que la condition détermine
le critére d'arret de la boucle :
|
Tant que la condition sera vérifiée, on répétera les instructions contenues dans le corps de la boucle.
Exemple : On désire calculer la moyenne d'un ensemble
de notes. L'utilisateur entrera -1 lorsqu'il aura fini de saisir les notes.
C:\Java> java Notes
Entrez la note suivante : 15 Entrez la note suivante : 9 Entrez la note suivante : 12 Entrez la note suivante : 7 Entrez la note suivante : 18 Entrez la note suivante : -1 La moyenne des 5 notes est de 12. C:\Java> |
On peut utiliser une boucle pour, puisque l'on
connait le nombre d'itérations à effectuer (borneSup - borneInf
+ 1). On aura ainsi :
class Notes |
Ici, on ne connait pas a l'avance le nombre d'itérations à effectuer, par contre on connait la condition d'arret : l'utilisateur saisira la note "-1". On va donc accumuler dans la variable somme les différentes notes, en concervant dans la variable nbNotes le nombre de notes que l'on a saisi. Lorsque la boucle est terminée, on n'oublie pas de retirer une note au nombre de notes (la note "-1" qu'il ne faut pas prendre en compte dans le calcul de la moyenne), on vérifie que l'utilisateur a saisi au moins une note et on procéde enfin au calcul de la moyenne.
C:\Java\Algo> java TestCarre Entrez la longuer du cote : 4 **** * * * * **** C:\Java\Algo> |
Rappel : aucun affichage ne doit etre fait dans les classes "Boites à outils". Par contre il est bien sur possible de retourner une chaine de caractères (String).
C:\Java\Algo> java TestTriangleRectangle Entrez la longueur du cote : 5 * ** * * * * ***** C:\Java\Algo> |
C:\Java\Algo> java TestTriangleIsocele Entrez la longueur du cote : 5 * * * * * * * ********* C:\Java\Algo> |
C:\Java\Algo> java TestSablier Entrez la hauteur du sablier : 8 ********* * * * * * * * * * * * * ********* C:\Java\Algo> |