Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Boucles Imbriquées | Boucles
Ninja JavaScript

book
Boucles Imbriquées

Dans ce chapitre, nous allons explorer le concept des boucles imbriquées. Les boucles imbriquées sont des boucles à l'intérieur d'autres boucles, et elles sont un outil puissant en programmation qui nous permet d'effectuer des actions répétées de manière structurée. En utilisant des boucles imbriquées, nous pouvons naviguer et manipuler efficacement des structures complexes, telles que des grilles, ce que notre Ninja fera exactement dans ce chapitre.

Imaginez notre Ninja se déplaçant à travers une grille, collectant des sushis. La grille est composée de lignes et de colonnes, et notre objectif est de collecter tous les sushis dispersés dans cette grille. Pour y parvenir, nous pouvons utiliser des boucles imbriquées : une boucle pour se déplacer à travers les lignes et une autre boucle pour parcourir chaque colonne.

Jetons un coup d'œil à un exemple pour comprendre comment fonctionnent les boucles imbriquées dans le contexte de notre jeu Ninja :

js

ninja.js

copy
function ninjaController(ninja) {
ninja.goLeft();
while (ninja.objectRight() !== "wall") {
lootColumn(ninja);
ninja.goRight();
}
lootColumn(ninja);
}

function lootColumn(ninja) {
let steps = 0;
while (ninja.objectUp() === "sushi") {
ninja.pickSushi();
ninja.goUp();
steps++;
}
ninja.pickSushi();
for (let i = 0; i < steps; i++) {
ninja.goDown();
}
}

Dans l'exemple ci-dessus, nous avons deux fonctions : ninjaController et lootColumn. La fonction ninjaController utilise une boucle while pour déplacer le Ninja à travers la grille de gauche à droite. Pour chaque colonne, elle appelle la fonction lootColumn, qui contient une autre boucle while pour déplacer le Ninja vers le haut, collectant des sushis au fur et à mesure. Une fois que le Ninja atteint le sommet de la colonne, il utilise une boucle for pour redescendre à sa position d'origine.

En imbriquant la boucle while à l'intérieur de la fonction lootColumn dans la boucle while de la fonction ninjaController, nous pouvons collecter efficacement tous les sushis dans chaque colonne avant de passer à la suivante.

Tâche

Swipe to start coding

Solution

function ninjaController(ninja) {
lootRow(ninja);
while (ninja.objectUp() === "sushi") {
ninja.goUp();
lootRow(ninja);
}
}
function lootRow(ninja) {
let movedRight = 0;

ninja.pickSushi();
while (ninja.objectRight() === "sushi") {
ninja.pickSushi();
ninja.goRight();
movedRight++;
}
ninja.pickSushi();

for (let i = 0; i < movedRight; i++) {
ninja.goLeft();
}
}

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
js

ninja.js

function ninjaController(ninja) {
// Write your code below
}

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

We use cookies to make your experience better!
some-alt