devstory

Boucles dans ECMAScript

1- Vue d'ensemble des boucles en ECMAScript

Dans ECMAScript des instructions (statement) sont exécutées de haut en bas. Mais parfois lorsque vous voulez exécuter une séquence de instructions, vous pouvez utiliser la boucle (loop).
ECMAScript vous fournit 3 types de boucle :
  1. while loop
  2. for loop
  3. do .. while loop
Des instructions (statement) peuvent être utilisées à l'intérieur de boucle :
  1. continue
  2. break
Instruction de ContrôleDescription
breakTermine l'instruction de la boucle
continueCause la boucle pour passer le reste du corps de son bloc (block),  et réessayer immédiatement ses conditions avant la répétition.

2- La boucle while

La syntaxe de la boucle while :
while (condition)  {
     // Do something here
     // ....
}
Exemple :
while-loop-example.js
console.log("While loop example");
// Declare a variable, and assign value of 2.
let x = 2;

// Condition is x < 10
// If x < 10 is true then run block
while (x < 10) {

    console.log("Value of x = ", x);

    x = x + 3;
}

// This statment is out of while block.
console.log("Finish");
Exécution de l'exemple :

3- for loop

La boucle for standard a la syntaxe comme ci-dessous :
for(InitialValues; condition; updateValues )
{
    // Statements
}
  • InitialValues: Initialise des valeurs pour les variables liées dans la boucle.
  • condition: définit les conditions d'exécution des blocs de commande.
  • updateValues: met à jour de nouvelles valeurs pour les variables.
for-loop-example.js

console.log("For loop example");

for( let i = 0; i < 10; i= i + 3)  {

  console.log("i= "+ i);
}
for-loop-example2.js
console.log("For loop example");


for(let i = 0, j = 0; i + j < 10; i = i+1, j = j+2)  {

   console.log("i = " + i +", j = " + j);
}
L'utilisation de la boucle for peut vous permettre de traverser les éléments du tableau.
for-loop-example3.js
console.log("For loop example");

// Array
let names =["Tom","Jerry", "Donald"];

for (let i = 0; i < names.length; i++ ) {

   console.log("Name = ", names[i]);
}

console.log("End of example");

4- La boucle for .. in

la boucle for..in vous permet de parcourir les property d'un objet.

for (prop in object) {   

   // Do something

}
 
Exemple :
for-in-loop-example.js

// An object has 4 properties (name, age, gender,greeing)
var myObject = {
   name : "John",
   age: 25,
   gender: "Male",
   greeting : function() {
      return "Hello";
   }
};


for(myProp in myObject)  {

    console.log(myProp);
}

5- La boucle for .. of

La boucle for..of vous permet de parcourir une Collection, par exemple, Map, Set.
Voir plus :
Exemple :
for-of-example.js
// Create a Set from an Array
var fruits = new Set( ["Apple","Banana","Papaya"] );

for(let fruit of fruits)  {

  console.log(fruit);

}
for-of-example2.js
// Create a Map object.
var myContacts = new Map();

myContacts.set("0100-1111", "Tom");
myContacts.set("0100-5555", "Jerry");
myContacts.set("0100-2222", "Donald");


for( let arr of myContacts)  {
  console.log(arr);
  console.log(" - Phone: " + arr[0]);
  console.log(" - Name: " + arr[1]);
}
 

6- La boucle do .. while

The do-while loop is used to execute a section of program many times.The characteristics of the do-while is that the block of statement is always executed at least once. After each iteration, the program will check the condition, if the condition is still correct, the statement block will be executed again.
do {  
   // Do something
}
while (expression);
Exemple :
do-while-loop-example.js
let value = 3;

do {
  console.log("Value = " + value);

  value = value + 3;

} while (value < 10);

7- Utiliser l'instruction break dans la boucle

break est une instruction qui peut se trouver dans une boucle. Cette instruction termine la boucle inconditionnellement.
loop-break-example.js
console.log("Break example");

// Declare a variable and assign value of 2.
let x = 2;

while (x < 15) {
    console.log("----------------------\n");
    console.log("x = ", x);

    // If x = 5 then exit the loop.
    if (x == 5) {
        break;
    }

    // Increase value of x by 1
    x = x + 1;
    console.log("x after + 1 = ", x);
}

console.log("End of example");

8- Utiliser l'instruction continue dans la boucle

continue est une instruction qui peut se trouver dans une boucle. Lorsque le programme attrape l'instruction continue, il va ignorer les lignes de commandes dans le bloc, dessous de continue et commence une nouvelle boucle.
loop-continue-example.js
console.log("Continue example");

// Declare a variable and assign value of 2
x = 2

while (x < 7) {
    console.log("----------------------\n")
    console.log("x = ", x)

    // % is used for calculating remainder
    // If x is even, then ignore the command line below of continue
    // and start new iteration.
    if (x % 2 == 0) {
        // Increase x by 1.
        x = x + 1;
        continue;
    }
    else {
        // Increase x by 1.
        x = x + 1

        console.log("x after + 1 =", x)
    }
}

console.log("End of example");

9- La boucle Labelled (Labelled Loop)

The ECMAScript allows you to stick a label to a loop. It is like you name a loop, which is useful when you use multiple nested loops in a program. 
  • You can use break labelX statement; to break a loop is attached labelX.
  • You can use continue labelX statement; to continue a loop is attached​​​​​​​ labelX.
Syntaxe :
// for loop with Label.
label1: for( ... )  {
    
}

// while loop with Label.
label2: while ( ... )  {

}

// do-while loop with Label.
label3: do  {
    
    
} while ( ... );
 
Example of using nested loops, labelled and labelled break statement.
labelled-loop-break-example.js
console.log("Labelled Loop Break example");

let i = 0;

label1: while (i < 5) {

    console.log("----------------------\n");
    console.log("i = " + i);
    i++;

    label2: for (let j = 0; j < 3; j++) {

        console.log("  --> " + j);
        if (j > 0) {
            // Exit the loop with label1.
            break label1;
        }
    }

}

console.log("Done!");
Example of using nested labelled loops and labelled continue statement.
labelled-loop-continue-example.js
let i = 0;

label1: while (i < 5) {
    console.log("outer i= " + i);
    i++;

    label2: for (let j = 0; j < 3; j++) {
        if (j > 0) {

            continue label2;
        }
        if (i > 1) {

            continue label1;
        }
        console.log("inner i= " + i + ", j= " + j);
    }

}
Peut-être que vous êtes intéressé

Voici des leçons en ligne à part du site web o7planning que nous recommandons. La liste comprend des leçons en ligne et celles en promo.