Premiers pas en JavaScript
boucle FOR... IN...
cuy copyleft
  See You Why?  

 


la boucle FOR... (19.1) | | exercices relatifs aux boucles FOR... (19.8)

Contenu

 

 

I. La boucle FOR traditionnelle

voir <<< séquence précédente

 

 

II. La boucle FOR... IN...

La notion d'objet n'a été abordée que très furtivement dans l'introduction. Cependant, puisque nous en sommes à apprendre l'usage des boucles et plus particulièrement de la boucle FOR... IN..., il serait dommage de ne pas illustrer cette boucle particulière qui permet d'explorer les propriétés d'un objet. Le lecteur qui souhaite passer cette approche peut le faire dès maintenant, mais il serait dommage qu'il n'y revienne pas après l'étude des objets (voir "jvs_230_objet.html").

Nous rappelons donc rapidement la définition d'un objet informatique : "un objet, en informatique, était une entité unique (p.ex. : la moto de GVdK) qui possède des propriétés (p.ex. : constructeur, modèle, immatriculation, propriétaire, couleur...) et sur laquelle on peut appliquer des méthodes (p.ex. : faire_le_plein, vendre, repeindre, faire_la_vidange...)". Peu importe si vous digérez cette définition, mais nous y reviendrons au chapitre 23.

Les tableaux sont un des types d'objets qui existent.
Imaginons donc l'existence d'un tableau (appelé Array en JS) qui serait la liste des élèves dans ma classe de '3RSE'.
Un rappel de la déclaration et de l'affectation des variables (voir "") devrait vous permettre de comprendre ce qui suit :
La déclaration de cette variable objet de type Array devrait se faire ainsi :
var cl3rse = new Array;
mais il ne suffit pas de déclarer la variable, encore faut-il lui affecter une valeur (dans notre cas, il s'agira d'une liste d'élèves) ce qui se fera ainsi :
cl3rse = ["ElifS","FredD","KathiaN","LaetitiaH","MelanieA","SihamF"];
et voilà notre objet 'cl3rse' de type Array déclaré et affecté d'une valeur. Chaque nom dans cette liste serait une propriété de notre objet 'cl3rse'.

A. la boucle FOR... IN...

Reste à montrer l'usage de la boucle FOR... IN...

La syntaxe en est fort simple :
for var in objet {
    // instructions à réaliser;
}

Ce qui, dans notre exemple, pourrait donner :
for eleve in cl3rse {
    document.write(cl3rse[eleve]+ "<br>");
}

Avertissement : certains navigateurs n'interprètent pas de façon identique cette boucle FOR... IN... ; c'est pour cette raison que nous la présentons comme une variante de la boucle FOR. En effet, on obtiendrait le même résultat en écrivant la classique boucle FOR suivante, qui elle est stable dans tous les navigateurs :
for(var i = 0; i < cl3rse.length; i++) {
    document.write(cl3rse[i]+ "<br>");
}

et, bien sûr, votre variable i aurait pu s'appeler eleve, ce qui aurait donné classiquement :
for(var eleve = 0; eleve< cl3rse.length; eleve++) {
    document.write(cl3rse[i]+ "<br>");
}

B. la variante FOR EACH... IN...

Et pour être complet, présentons aussi cette boucle particulière "FOR EACH... IN...", quasi identique à celle présentée ci-dessus ; cependant, dans cette boucle, on itère plus sur les indices des objets (tableaux), mais sur les différents éléments du tableau :

La syntaxe en est fort simple :
for each (var in objet) {
    // instructions à réaliser;
}

Ce qui, dans notre exemple, pourrait donner :
for each (eleve in cl3rse) {
    document.write(eleve+ "<br>");
}

Avertissement : certains navigateurs n'interprètent pas de façon identique cette boucle FOR EACH... IN... ; les utilisateurs intéressés pourraient aller lire les commentaires de ECMA (norme de décembre 2005 : ECMA-357.pdf) et c'est pour cette raison que nous la présentons comme une variante de la boucle FOR. En effet, on obtiendrait le même résultat en écrivant la classique boucle FOR suivante :
for(var i = 0; i < cl3rse.length; i++) {
    document.write(cl3rse[i]+ "<br>");
}

et, bien sûr, votre variable i aurait pu s'appeler eleve, ce qui aurait donné classiquement :
for(var eleve = 0; eleve< cl3rse.length; eleve++) {
    document.write(cl3rse[eleve]+ "<br>");
}

même s'il est préférable de nommer toute variable compteur par l'une des lettres i, j, k ou un nom qui commence par l'une d'elles i_eleve, par exemple.

 

 

VIII. Exercices relatifs aux boucles FOR...

voir suite >>>

 

 

IX. Test relatif aux boucles FOR...

voir suite >>>

 

 


la boucle FOR... (19.1) | | exercices relatifs aux boucles FOR... (19.8)