On utilise en général une boucle "for" pour aller d'un nombre à un autre, mais libre à vous de lui trouver d'autres emplois.
La syntaxe est la suivante:
for ([initialisation]; [condition]; [comptage]) {programme}
- initialisation sert en général à mettre la variable du compteur à sa valeur initiale, elle est facultative.
- Tant que la condition est vraie, la boucle s'effectue, sinon l'exécution se poursuit plus loin, l'omission de la condition donne une boucle sans fin.
- comptage est l'endroit idéal pour incrémenter ou décrémenter la variable de boucle, mais on peut le laisser vide ou y faire autre chose.
- et enfin, programme, ou vous mettrez sur autant de lignes que vous voudrez, ce que vous aurez à exécuter.
Exemples:
for (x=0;x<10;x++) {document.write(x);} écris les chiffres de 0 à 9
for (x=5;x<15;x=x+2) {document.write(x);} écris les chiffres impairs de 5 à 13
for (x=9;x>=0;x--) {document.write(x);} écris les chiffres 9 à 0
for (;;) {document.writeln('Faites sauter la banque !');} écris ce texte à l'infini (ou jusqu'au plantage)
Ne croyez pas que les boucles ne servent qu'à produire des nombres, si par exemple vous avez sur votre page un panneau de sélection, une boucle for peut vous permettre de compter le nombre de lignes sélectionnées et d'afficher (ou de créer un nouveau tableau) avec ces lignes (ou le contraire), et pourtant c'est toujours une simple boucle for qui fait le travail.
Exemple complet:
- <SCRIPT>
- function compte(objet_select)
- {
- var nbre_select=0;
- for (var x=0; x<objet_select.options.length; x++)
- {
- if (objet_select.options[x].selected==true) {nbre_select++;}
- }
- return nbre_select;
- }
- </SCRIPT>
- <FORM NAME="Formulaire1">
- <P>Choisissez des objets dans la liste ci-dessous
- <BR><SELECT NAME="Liste1" MULTIPLE>
- <OPTION SELECTED>Facture
- <OPTION>Vélo
- <OPTION>Ballon
- <OPTION>Chemise
- <OPTION>Pistache
- <OPTION>Raton laveur
- </SELECT>
- <P><INPUT TYPE="button" NAME="Bouton1" VALUE="Combien sont sélectionnés ?"
- onClick="alert ('Nombre d\'élément sélectionné: '+compte(document.Formulaire1.Liste1))">
- </FORM>
Et les explications détaillées à l'extrême:
- On déclare un script (éventuellement entre <HEAD> et </HEAD>)
- On déclare une nouvelle fonction de nom "compte" et qui reçoit en paramètre le nom de l'objet liste qui sera stocké temporairement dans la variable "objet_select".
- Début du programme de la fonction.
- On initialise une variable de nom "nbre_select" avec la valeur "0", cette variable contiendra à la fin de la boucle le compte d'objets sélectionnés.
- Et voilà la bête boucle for vue ci-dessus, on déclare et initialise la variable de boucle "x" à zéro, cette variable va servir à parcourir toute la liste de l'objet panneau de sélection, puis on teste justement si cette variable est toujours plus petite que le nombre d'éléments dans la liste (qui est obtenu par la propriété .options.length de l'objet donné en paramètre), et enfin on incrémente la variable de comptage (x++, ce qui est identique à x=x+1).
- Début de la boucle.
- Ici on teste si la propriété .options[x].selected de l'objet donné en paramètre est vraie (true), options[x] donne la xième ligne de la liste et si la propriété .selected est vraie on augmente de 1 (incrémente) la variable nbre_select qui contient le nombre de lignes sélectionnées. On pourrait aussi transférer cette ligne dans un tableau ou une autre liste, ou faire toute autre opération désirée.
- Fin de la boucle for.
- Cette instruction change la valeur de retour de la fonction avec la valeur du nombre de lignes sélectionnées.
- Fin de la fonction compte().
- Fin du script.
- Dans le document HTML on déclare un formulaire de nom "Formulaire1", original non ?.
- On explique ce que l'on désire voire faire (ça vaux mieux).
- On déclare un panneau de sélection multiple de nom "Liste1", stupéfiant hein ?
- On met une ligne sélectionnée par défaut, car tel est notre bon plaisir.
- On garnit les lignes suivantes.
- Encore.
- Encore.
- Et encore.
- Vous êtes sourd ou quoi ?
- Bon y'en a assez, on ferme la liste.
- On déclare enfin un bouton dont on se fiche éperdument du nom et on lui ajoute une fonction javascript, onClick, qui appelle quand le bouton est cliqué une autre fonction javascript, alert, à laquelle on passe d'abord un peu de texte
- J'ai coupé la ligne pour que cela sois plus lisible, mais comme il n'y a pas de ";" l'exécution continue comme si c'était la même ligne, je reprend donc:
un peu de texte pour alert, et , grâce à "+" qui colle les textes, un retour de la magnifique et grandiose fonction personnelle que vous avez créé ci-dessus et qui donne le nombre de lignes sélectionnées. La fonction alert, affiche le résultat dans une boîte de dialogue ordinaire. TADAAAAH !!!
Oui mais pour que la fonction fonctionne, il faut encore lui dire sur quel objet travailler donc, j'appelle la fonction compte avec comme paramètre l'objet "Formulaire1.Liste1" et si vous retournez en ligne 2, on stocke ce paramètre dans objet_select et on utilise en fait en ligne 5 "Formulaire1.Liste1.options.length" et en 7: "Formulaire1.Liste1.options[x].selected" ce qui est bien l'objet et la propriété que l'on veut lire, si vous en doutez, consultez la référence à la ligne "options - Groupe objets - Toutes les options du marqueur SELECT".
- A oui, il faut encore dire à la page web que le formulaire est fini.
Et maintenant pour se détendre:
Comme vous pouvez le voir maintenant, une simple boucle for permet de faire bien plus de choses que vous ne le croyez, vous n'êtes limité que par votre imagination, et les connaissances du langage javascript ne vous donnent pas automatiquement celles de la programmation, mais le guide n'est pas terminé et vous verrez encore bien d'autres techniques là ou ailleurs.
|