Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > Javascript > Apprenez le Javascript ! > Les bases du Javascript > Les boucles > Lecture du tutoriel

Les boucles

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)
Avatar
Auteur : ZoZor
Note : 18 / 20 (6 votes)
Visualisations : 23 444

Plus d'informations Plus d'informations
Nous allons à présent passer sur un sujet simplissime : les boucles.

Vous allez gagner un temps précieux avec, si précieux que je ne peux même pas vous le décrire ! Il n'empêche que, si vous n'avez pas correctement compris ce chapitre, il vous sera très difficile d'aller plus loin avec javascript. Pour preuve, vous en aurez besoin dans le chapitre prochain.

Au boulot :p !
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

while

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.

Image utilisateur
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 : JavaScript
1
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. :D

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 : JavaScript
1
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 : JavaScript
1
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 !

for

À 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 :D .

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 : JavaScript
1
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.
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 :p . Voici un petit exemple.
Code : JavaScript
1
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 :p ) ! 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.

Q.C.M.

Une boucle s'arrête quand...
Laquelle de ces boucles est l'intrus dans la liste ?
Combien de fois cette boucle tourne-t-elle ?

Code : JavaScript
1
2
3
4
for(var i = 55; i = 0; i--)
{
    i -= 4;
}
Combien de fois ces boucles écrivent-elles "Hello world !" ?

Code : JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
var boucle = 0;

while(boucle <= 99)
{
    for(var i = 10; i <= 10; i++)
    {
        i -= 2;
        document.write('Hello world !');
        if(i <= 0)
        {
            break;
        }
    }
    boucle += 2
}

PS : C'est le truc le plus tordu que j'ai jamais fait. Si vous comprenez ça, alors vous avez tout compris sur les boucles.

Statistiques de réponses au QCM


Alors, vous avez testé la dernière question ? Super dure hein ? Même moi j'ai eu du mal à me relire :D !

Vous savez à présent manier les boucles, et il ne vous reste plus qu'un chapitre avant d'avoir fini d'apprendre les bases. Et oui, déjà ! Ceci étant, prenez toujours votre temps pour lire les chapitres. Cela ne sert à rien de faire la course à l'apprentissage du javascript avec le voisin. À vrai dire, cela vous entraverait plus que tout, car vous risqueriez de prendre des mauvaises habitudes ;) .

Dans le prochain chapitre, nous allons encore manipuler les boucles ! Et oui, pour les tableaux c'est très utile. Mais c'est quoi un tableau ? Tout ça au prochain épisode...
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 28/06/2006 à 21:30:15
Modifié : le 22/08/2008 à 15:52:25
Avancement : 0%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 316 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.0405s (0.0267s)