Boucle et return en JavaScript
Supposons que nous ayons une fonction renvoyant la somme
des nombres de 1 à 5 :
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // affichera 15
Supposons maintenant que nous placions le return
à l'intérieur de la boucle, comme ceci :
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
Dans ce cas, la boucle ne fera qu'une seule itération
et une sortie automatique de la fonction se produira
(et par la même occasion de la boucle). Et en une seule
itération de la boucle, la variable sum contiendra
seulement le nombre 1, et non pas la somme totale souhaitée.
Que sera affiché dans la console suite à l'exécution du code suivant :
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Expliquez pourquoi. Que voulait faire l'auteur de ce code ? Corrigez l'erreur de l'auteur.