L'instruction continue en JavaScript
Il existe également une instruction continue,
qui démarre une nouvelle itération de la boucle. Cette
instruction peut parfois être utile pour
simplifier le code, bien que la tâche puisse
pratiquement toujours être résolue sans elle. Regardons
un exemple pratique.
Supposons que nous ayons un tableau de nombres. Parcourons-le
avec une boucle et pour les nombres divisibles
par 2, élevons-les au carré et affichons-les
dans la console, et pour les nombres divisibles par 3,
élevons-les au cube et affichons-les dans la console. Voici la solution
à la tâche décrite :
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Comme vous pouvez le voir, la ligne console.log(result)
se répète deux fois. Sortons-la
de la condition if, comme ceci :
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // avons sorti l'affichage de la condition
}
Cependant, notre script fonctionne maintenant un peu
différemment : il s'avère que pour les éléments ordinaires,
non traités par notre condition if,
l'affichage de la variable result
dans la console sera également exécuté, ce qui, selon les conditions de notre tâche, n'est
pas nécessaire.
Corrigeons le problème en ajoutant à notre condition if
une clause else, qui s'exécutera
pour les éléments non divisibles par 2 et
3, et utilisons-y l'instruction continue,
qui nous redirigera immédiatement
vers une nouvelle itération de la boucle :
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // passons à une nouvelle itération de la boucle
}
console.log(result); // s'exécutera si divisible par 2 ou 3
}
Écrivez une boucle qui n'affichera que
les nombres pairs de 1 à 100,
en sautant les nombres impairs à l'aide de continue.