Extrait du cours Java notions de base pour l’élaboration des boucles
5.1 les notions de base pour l’élaboration des boucles
Toute instruction d’itération possède une condition booléenne dite d’arrêt, et une suite d’instructions à répéter, qu’on appelle corps de la boucle. Lors de chaque itération, la condition d’arrêt est testée, et selon sa valeur, on décide de répéter une nouvelle fois ou pas, les instructions du corps.
Problème 1 : Reprenons notre problème cosistant à calculer la somme d’une suite de nombres entiers saisis au clavier. Le calcul s’arrête lors de la saisie du nombre zéro. Pour réaliser le calcul, nous allons répéter la saisie d’un nombre n, puis son ajout à une variable total qui accumule la somme de tous les nombres saisis.
5.1.1 Etapes d’une boucle
Toute boucle s’organise autour d’activités d’initialisation, test, calculs, etc. Nous donnons un schéma d’écriture de boucle très courant, que nous illustrons avec l’algorithme précédent. L’ordre des étapes peut varier d’une boucle à l’autre. Ce qui importe, est de ne pas omettre aucune des étapes.
1. Initialisation des variables de la boucle (n, total).
2. Test de la condition (sur n)
3. Dans le corps de la boucle :
– Nouveau calcul ou traitement des données (sur total),
– Modification des variables du test (n)
Dans notre exemple, l’étape d’initialisation est nécessaire pour réaliser le tout premier test sur n, mais aussi pour le premier calcul de total. Une mauvaise initialisation, par exemple, de total à une valeur autre que 0, peut donner lieu à un calcul incorrect. L’importance de l’étape de calcul est évidente.
5.1.2 Boucles qui ne terminent pas
L’étape de modification des variables du test est primordiale pour l’arrêt de la boucle. Supposons que nous l’oublions dans notre algorithme, dont la boucle devient alors .
5.2 Boucle while
5.2.1 rappels
Une boucle while en Java a la forme :
Listing 5.1 – (pas de lien)
1 while ( c ) { “tant que c est vrai, faire suite Instructions“
2 suite Instructions
3 } où c est une expression booléenne d’entrée dans la boucle. Le comportement de cette boucle est :
1. c est évalué avant chaque itération.
2. Si c est vrai, on exécute suite Instructions, puis le contrôle revient au point du test d’entrée (point 1).
3. Si c est faux, le contrôle du programme passe à l’instruction immédiatement après la boucle.
5.2.2 traduction de notre algorithme avec while
Listing 5.2 – (lien vers le code brut)
1 p u b l i c c l a s s Somme {
2 p u b l i c s t a t i c v o i d m a in ( S t r i n g [ ] a r g s ) {
3 i n t n , t o t a l ;
4 / / I n i t i a l i s a t i o n d e n , t o t a l
5 T e r m i n a l . e c r i r e S t r i n g ( ” E n t r e z un e n t i e r ( f i n a v e c 0 ) : ” ) ;
6 n = T e r m i n a l . l i r e I n t ( ) ;
7 t o t a l = 0 ;
8 w h i l e ( n ! = 0 ) {
9 t o t a l = t o t a l + n ; / / C a l c u l
10 T e r m i n a l . e c r i r e S t r i n g ( ” E n t r e z un e n t i e r ( f i n a v e c 0 ) : ” ) ;
11 n = T e r m i n a l . l i r e I n t ( ) ; / / M o d i f i c a t i o n v a r i a b l e du t e s t
12 }
13 T e r m i n a l . e c r i r e S t r i n g l n ( ” La somme t o t a l e e s t : ” + t o t a l ) ;
14 }
15 }
…….
Compléments sur l’itération Java notions de base pour l’élaboration des boucles (202 KO) (Cours PDF)