Blog ENI : Toute la veille numérique !
🎁 Jusqu'au 25/12 : 1 commande de contenus en ligne
= 1 chance de gagner un cadeau*. Cliquez ici
🎁 Jusqu'au 31/12, recevez notre
offre d'abonnement à la Bibliothèque Numérique. Cliquez ici
  1. Livres et vidéos
  2. Apprendre à développer avec JavaScript
  3. Traitements itératifs (boucles)
Extrait - Apprendre à développer avec JavaScript Des bases à l'utilisation de frameworks (5e édition)
Extraits du livre
Apprendre à développer avec JavaScript Des bases à l'utilisation de frameworks (5e édition) Revenir à la page d'achat du livre

Traitements itératifs (boucles)

Présentation de la syntaxe des boucles

Nous avons étudié, dans le cadre du chapitre Développement à partir d’algorithmes, cinq types de boucles permettant de traiter tous les cas de figure en matière de traitements itératifs :

  • Boucle Jusqu’à avec un test de la condition en début d’itération,

  • Boucle Tant que avec un test de la condition en début d’itération,

  • Boucle Jusqu’à avec un test de la condition en fin d’itération,

  • Boucle Tant que avec un test de la condition en fin d’itération,

  • Boucle Pour.

Ces structures itératives ne sont pas implémentées dans tous les langages de programmation. Il est par exemple possible de se passer de la boucle Jusqu’à en la remplaçant par la boucle Tant que. Il suffira de modifier la condition.

La boucle Pour est par contre pratiquement toujours présente dans les langages. Sa particularité est de n’être utilisable que dans les cas où le nombre d’itérations est connu en début de traitement. Il est toujours possible d’avoir recours à une boucle Tant que (ou Jusqu’à).

En JavaScript, le choix en matière de structures itératives se réduit à :

  • while : boucle Tant que avec un test de la condition en début d’itération...

Boucle while

1. Syntaxe

La boucle while permet de traduire une logique de Tant que avec un test en début de structure. La syntaxe est la suivante :

while(condition) 
{ 
   séquence de code 
} 

Avec la boucle while une séquence de code est exécutée tant que la condition placée entre parenthèses est vraie.

Il faut bien évidemment avec cette itération que l’état de la condition puisse évoluer au cours de la séquence de code intégrée dans les accolades. Il faut aussi être extrêmement attentif au fait que la condition puisse être évaluable au premier passage sur celle-ci. Il s’agit d’une cause de dysfonctionnement fréquente. La condition porte aussi très souvent sur l’état d’une variable de type compteur. Bien sûr pour espérer que le compteur puisse atteindre une valeur limite, il faut le modifier au cours de la séquence de code (incrémentation ou décrémentation).

Enfin, vous noterez dans les scripts de ce livre et sur les nombreux exemples disponibles sur Internet, la syntaxe alternative suivante (que nous avions déjà évoquée pour la structure conditionnelle if) :

while(condition) { 
   séquence de code 
} 

2. Exercice n°9 : Moyenne de 10 nombres saisis au clavier

Sujet

Calculer et afficher la moyenne de 10 nombres lus au clavier.

En toute rigueur, cet exercice pourrait être traité...

Boucle do while

1. Syntaxe

La boucle do while permet de traduire une logique de Tant que avec un test en fin de structure. La syntaxe est la suivante :

do 
{ 
    séquence de code 
} while(condition) 

Avec la boucle do while une séquence de code est exécutée tant que la condition placée entre parenthèses est vraie.

Il y a une différence notable toutefois par rapport à la boucle while, ici la séquence de code est exécutée au moins une fois dans la mesure où le test sur la condition est réalisé à l’issue d’un premier tour.

2. Exercice n°11 : Moyenne d’une série de n nombres saisis au clavier

Sujet

Calculer et afficher la moyenne de n nombres réels saisis au clavier (liste terminée par un zéro).

Corrigé (partiel) en JavaScript

/* Initialisations */ 
cpt = 0; 
somme = 0.0; 
 
/* Boucle de traitement */ 
do 
{ 
    nblu = parseFloat(prompt("Nombre (0 pour finir) : ")); 
    cpt = cpt + 1; 
    somme = somme + parseFloat(nblu);  
} while (nblu != 0) 
 
/* Affichage du résultat */ 
if (cpt == 1) 
{ 
    document.write("Aucun nombre n'a été saisi"); 
} 
else 
{ 
 ...

Boucle for

1. Syntaxe

Rappelons simplement que cette boucle n’est utilisable que quand le nombre d’itérations à effectuer est connu en début de traitement.

La syntaxe est la suivante :

for (compteur = valeur initiale; valeur finale de compteur; 
incrémentation du  compteur) 
{ 
    séquence de code 
} 

N’insistons pas sur le fonctionnement de ce type de boucle, cela a largement été vu dans le cadre du chapitre Développement à partir d’algorithmes.

Bien évidemment la gestion de la progression du compteur est laissée à la charge de la structure for. Il n’est donc pas nécessaire de prévoir une valeur initiale au compteur avant la boucle (seule la déclaration du compteur est demandée). La valeur initiale, la valeur finale et le pas d’incrémentation/décrémentation du compteur sont pris en compte par la boucle. Il ne faut pas prévoir de changement de valeur du compteur dans la séquence de code.

2. Exercice n°12 : Moyenne d’une série de 10 nombres saisis au clavier

Sujet

Calculer la moyenne de 10 nombres saisis au clavier par l’intermédiaire d’une boucle for.

Cet exercice a déjà été traité auparavant par l’intermédiaire d’une boucle while (Exercice n°9). Rappelons qu’il est toujours possible de substituer à une boucle for une boucle while (mais pas forcément l’inverse).

Corrigé (partiel) en JavaScript

/* Déclaration de variables...