Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Qu'est-ce qu'une boucle ? Et à quoi ça sert ?
Une boucle, c'est une condition qui se répète ; c'est d'ailleurs pour ça que le chapitre sur les boucles vient après celui des conditions. Concrètement, une boucle permet de répéter des instructions. En clair, c'est un gain de temps non négligeable. Pour vous montrer à peu près ce que fait une boucle, je vous ai fait un joli petit schéma.
Ce qui se passe dans une boucle
En premier, la boucle exécute les instructions dans l'ordre. Elle passe de la 1 à la 3 en passant par la 2. Puis quand elle a fini, elle recommence du début. Et elle refait l'instruction 1 puis la 2, la 3, ... Le seul problème dans cette boucle, c'est qu'elle est infinie. Elle exécutera donc une infinité de fois les instructions !
C'est donc pour cela qu'il faut fixer une condition à la boucle. Tant que la condition est remplie, on repasse dans la boucle. Dès qu'elle ne l'est plus, elle s'arrête ! Voici comment faire une boucle simple avec
while.
Code : JavaScript1
2
3
4 | while(continuer_boucle == 'oui')
{
/* Instructions à exécuter */
}
|
Si on traduit
while, qui est là encore un mot anglais, on obtient le mot "tant que". Dans cet exemple, la boucle tourne tant que la variable
continuer_boucle vaut 'oui'.
Et voilà, vous savez tout sur les boucles.
On va quand même faire quelques exemples et exercices pour être sûrs d'avoir bien tout compris. L'exemple classique est celui de la punition. Imaginons que vous ayez été insupportables en cours de français, et que vous devez recopier 100 fois : "Je ne me prends pas pour King Kong ou Tarzan en cours de français". C'est là que les boucles interviennent. Vous n'avez qu'à taper 3 voir 4 lignes de code pour écrire 100 fois la phrase. Bingo !
Code : JavaScript1
2
3
4
5
6
7 | var boucle = 0;
while(boucle <= 100) /* Tant que boucle <= que 100, faire tourner la boucle */
{
document.write('Je ne me prends pas pour King Kong ou Tarzan en cours de français<br/>'); /* On écrit la phrase à recopier 100 fois */
boucle++; /* Et avant de terminer, on n'oublie surtout pas d'incrémenter la variable, sinon on a une boucle infinie :D */
}
|
Assurez-vous bien de ne pas avoir une boucle qui s'exécute à l'infini !
Normalement, un navigateur refuse de travailler plus de 10 secondes dans une boucle, et vous demandera si il doit arrêter la boucle ou la continuer.
Alors, que préférez-vous ? 20 minutes à recopier cette phrase idiote, ou 1 minute passée à coder et 30 secondes à l'imprimer ? Et le mieux dans tout ça, c'est que si on devait recopier la punition 4 000 fois, il suffit juste de changer la condition dans la boucle, et lui dire de tourner 4 000 fois au lieu de 100 !
Mais est-ce vraiment utile dans un site web, ou dans un jeu, de faire une boucle ?
C'est vrai, je peux difficilement vous dire à quoi ces boucles vont pouvoir nous servir. Sachez tout de même que c'est très utile, et que vous en aurez besoin un jour ou l'autre (par exemple pour le chapitre suivant

). Ceci étant dit, je vous vous montrer un autre exemple de ce qu'on peut faire avec une boucle.
Si certains ont du mal à comprendre ce que fait la variable qui s'incrémente, avec cet exemple, ils devraient enfin comprendre. On va afficher cette variable à chaque ligne, et on va voir quelle valeur elle a.
Code : JavaScript1
2
3
4
5
6
7 | var boucle = 0;
while(boucle <= 100)
{
document.write(boucle+'<br/>');
boucle ++;
}
|
Et voilà, on obtient le numéro de chaque ligne. La variable
boucle augmente donc de 1 à chaque passage de la boucle (vous auriez dû le voir, normalement). Pour ce qui est de la boucle de type
while, vous savez tout !
À présent, nous allons nous attaquer à la boucle
for. Elle n'est pas plus compliquée que
while, c'est seulement que dans certains cas elle est plus adaptée. Mais vous pouvez très bien utiliser la boucle
while au lieu de
for, le résultat sera le même. Je ne vous en voudrai pas, si comme M@teo21 vous préférez utiliser les boucles
while plutôt que les boucles
for. Pour ma part, je n'aime pas trop manipuler les boucles
while ; donc, dès que je pourrai utiliser une de type
for, je le ferai, vous êtes prévenus

.
Trêve de bavardages : nous en étions à la boucle
for. Alors, comment ça marche ? Pareil que
while, sauf que c'est juste ce qui se trouve entre parenthèses qui change. Je vous fais l'exemple de la punition à recopier 100 fois mais cette fois-ci, avec une boucle de type
for.
Code : JavaScript1
2
3
4
5
6 | var boucle;
for(boucle = 0; boucle <= 100; boucle++)
{
document.write('Je ne saute pas sur les tables en faisant le cri de Tarzan en cours de français<br/>');
}
|
Vous le voyez, c'est juste dans la première ligne que
for est différent de
while, sinon c'est pareil ! Je vous dois quand même quelques explications sur cette fameuse ligne.
- Jusqu'au premier point virgule, il y a la partie "initialisation". C'est la valeur que l'on donne à la variable au début de la boucle.
- Ensuite, il y a la condition. Là, rien de sorcier, on a vu ça plus haut.
- Et enfin, il y a l'incrémentation ou la décrémentation (on peut aussi faire une boucle qui part de 100, et qui diminue à chaque tour pour arriver à 0, et sortir de la boucle). Une fois que la boucle aura fini un tour, elle regardera la condition. Si celle-ci est remplie, alors la boucle effectuera l'action qui change la variable.
Et voilà, vous savez déjà tout sur la boucle
for !
Et en bonus track...
Vous avez gagné le droit d'en apprendre encore une autre ! Ne vous inquiétez pas, elle fonctionne pratiquement pareil que
while. Sauf que certains la surnomment d'
exception, car elle ne fonctionne pas exactement comme
while et
for. D'accord : les deux dernières phrases sont contradictoires, mais une fois que vous aurez fait connaissance de
do while, vous me comprendrez

. Voici un petit exemple.
Code : JavaScript1
2
3
4
5
6
7 | var boucle = false;
do
{
document.write('Youhou !<br/>');
}
while(boucle); /* Faire la boucle tant que boucle est égale à true */
|
Mais mais mais ???
boucle vaut false et la condition pour que la boucle tourne est "tant que boucle vaut true", et pourtant la boucle à quand même tourné une fois ! Késaco ?
Premièrement, il n'y a pas de mais (je fais comme les profs, c'est marrant, vous devriez essayer

) ! Je rigole. Rassurez-vous, ce n'est pas votre ordi ou la boucle qui a un bogue. En fait, elle est justement faite pour tourner une fois même si la condition n'est pas remplie. C'est utile dans certains cas, mais c'est tout de même assez rare d'en avoir besoin (il n'empêche que vous devez la connaître !).
La plupart des erreurs avec do while viennent du petit point-virgule que vous oubliez souvent après le while. Pensez à ne pas l'oublier !
Et en rebonus track...
Vous allez bientôt pouvoir arrêter une boucle, même quand la condition est remplie et qu'elle doit tourner ! Et cela grâce à
break. Oui oui, le
break qu'on a rencontré avec
switch, c'est le même

. En anglais, ça veut dire "casser". Quand il est placé dans une boucle, on dit que l'on casse la boucle. Je vous mets un petit exemple pour vous illustrer tout ça.
Code : JavaScript 1
2
3
4
5
6
7
8
9
10
11 | for(var boucle = 0; boucle <= 100; boucle++)
{
if(boucle == 22)
{
break; /* Si boucle est égale à 22, on casse la boucle */
}
else
{
document.write('Ligne '+boucle+'<br/>'); /* Sinon on écrit le numéro de la ligne */
}
}
|
J'ai déclaré la variable dans le for. C'est tout à fait correct. Enfin, sachez que j'utilise souvent cette méthode.