Il existe plusieurs types de boucles. Les boucles sont des blocs d'instructions qui permettent de répéter un blonc d'instructions "autant de fois que nécessaire".
"Autant de fois que nécessaire" est exprimé par la personne qui code la boucle:
répéter un nombre fixe de fois: 5 fois, ou 67 fois par exemple
répéter un nombre variable de fois: autant de fois que la valeur dans la variable compteur, autant de fois que demandé par l'utilisateur, autant de fois qu'il y a de cases dans un tableau, etc.
répéter un nombre qui dépend de la situation: tant qu'on a pas trouvé la bonne réponse, au bout d'un certain temps, tant que l'utilisateur demande de continuer etc.
Dans les trois cas, on peut utiliser une boucle while, et dans les deux premiers on peut également utiliser une boucle for.
La boucle for s'écrit comme suit en JavaScript: le mot clef for, puis entre parenthèses un début suivi d'un point virgule suivi d'une condition pour continuer suivie de l'incrémentation. Enfin, le bloc d'instructions sont entre accolades:
for( début ; condition pour continuer; incrémentation)
{
//instructions à répéter en javascript
}
Les instructions qui ne sont pas en gras sont à déterminer par le programmeur.
Imaginons que l'on veuille faire un compteur de 0 à 10, de 1 en 1:
début: une variable (appelons-la compteur) vaut 0 au début -> let compteur=0
condition pour continuer: la variable (que nous avons appellée compteur) est inférieure à 11 -> compteur <11
incrémentation: la variable (que nous avons appellée compteur) augment de 1 à chaque fois -> compteur ++ OU compteur=compteur+1 OU compteur=+=1
instructions à répéter: afficher la variable -> alert(compteur)
for ( let compteur =0 ; compteur<11 ; compteur++)
{
alert(compteur);
}
Imaginons que l'on veut répéter une instruction un nombre n de fois:
for( let maVariableCompteur=0 ; maVariableCompteur<n ; maVariableCompteur++)
{
//instructions à répéter en javascript qui se répétera n fois
}
Répéter ajouter 170 fois le nombre 57
instructions à répéter: une variable (appellons-là somme) vaut elle-même plus 57 -> somme=somme+57 OU somme+=57
let somme=0;
for ( let repetition =0 ; repetition<170 ; repetition++)
{
somme+=57;
}
alert(somme);
Vous aller devoir ajouter 5 fois le texte entré par un utilisateur et l'affciher à la fin.
Par exemple, si un utilisateur entre:
"Le"
" "
"cours de"
"base de données"
"est avec PhPMyAdmin"
Le système affichera à la fin "Le coursdebase de donnéesest avec PhPMyAdmin".
Essayer de faire l'exercice par vous même sans regarder la correction
début: ?
condition pour continuer: ?
incrémentation: ?
instructions à répéter: ?
début: on commence avec une variable qui sert à compter, égale à 0 au début
condition pour continuer: l'instruction n'a pas été répétée 5 fois, c'est à dire la variable est inférieure à 5
incrémentation: la variable qui sert à compter vaut 1 de plus
instructions à répéter: demander à l'utilisateur d'entrer un texte, puis concaténer une chaine de caractère avec le nouveau texte
for ( let repetition =0 ; repetition<5; repetition++)
{
}
let chaineDeCaracteres="";
for ( let repetition =0 ; repetition<5; repetition++)
{
chaineDeCaracteres+=prompt("Enter le texte à ajouter"); // OU en deux instructions: let ajout=prompt("Enter le texte à ajouter"); chaineDeCaracteres+= ajout;
}
alert (chaineDeCaracteres);
Imaginons que l'on veut répéter une instruction un nombre contenu dans la variable maVariable de fois:
for( let maVariableCompteur=0 ; maVariableCompteur<maVariable ; maVariableCompteur++)
{
//instructions à répéter en javascript qui se répétera n fois
}
Transformer un mot en une série de "*" au tant de fois qu'il y a de caractères dans une String
grandeur variable: la longueur de la chaine de caractères ( en utilisant length )
instructions à répéter: une variable de type String se voit ajouter d'une "*"
let motEntreParUtilisateur=prompt("Enter votre mot");
let motTransforme="";
for ( let repetition =0 ; repetition<motEntreParUtilisateur.length ; repetition++)
{
motTransforme+="*";
}
alert(motTransforme);
Vous aller devoir saluer tous les utilisateurs, sachant que chaque utilisateur est dans une case d'un tableau Array
Par exemple, si nous avez le tableau:
let etudiants= [ "Martine" , "Jane", "Williams" ];
votre programme va afficher "Bonjour Martine Jane Williams"
Essayer de faire l'exercice par vous même sans regarder la correction
début: ?
condition pour continuer (grandeur variable): ?
incrémentation: ?
instructions à répéter: ?
début: on commence à l'index 0, au début du tableau
condition pour continuer: nous ne sommes pas arrivés à la fin du tableau, à l'index de la taille du tableau (etudiants.length) moins 1
incrémentation: nous nous rendons à l'index en cours plus 1
instructions à répéter: concatener le prénom de l'index en cours à la suite de "Bonjour ...."
for ( let index =0 ; index< etudiants.length; index++)
{
}
let texteBonjourEtudiants="Bonjour ";
for ( let index =0 ; index< etudiants.length; index++)
{
texteBonjourEtudiants+= etudiants[index] +" ";
}
alert (texteBonjourEtudiants);
Ex: "Bonjour Martine Jane et Williams"
let texteBonjourEtudiants="Bonjour ";
for ( let index =0 ; index< (etudiants.length-1); index++)
{
texteBonjourEtudiants+= etudiants[index] +" ";
}
alert (texteBonjourEtudiants+ "et "+ etudiants[etudiants.length-1]);
let chaineDeCaracteres="";
let repetition =0
while (repetition<5)
{
chaineDeCaracteres+=prompt("Enter le texte à ajouter"); // OU en deux instructions: let ajout=prompt("Enter le texte à ajouter"); chaineDeCaracteres+= ajout;
repetition++;
}
alert (chaineDeCaracteres);
let texteBonjourEtudiants="Bonjour ";
let index =0
while ( index< etudiants.length)
{
texteBonjourEtudiants+= etudiants[index] +" ";
index++;
}
alert (texteBonjourEtudiants);