Pętla i return w JavaScript
Załóżmy, że mamy funkcję zwracającą sumę
liczb od 1 do 5:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // wyświetli 15
Załóżmy teraz, że umieścimy return
wewnątrz pętli, w ten sposób:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
W tym przypadku pętla wykona tylko jedną
iterację i nastąpi automatyczne wyjście
z funkcji (a przy okazji z pętli). A w jednej
iteracji pętli w zmiennej sum znajdzie się
tylko liczba 1, a nie cała wymagana suma.
Co zostanie wyświetlone w konsoli w wyniku wykonania następującego kodu:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Wyjaśnij dlaczego. Co autor tego kodu chciał zrobić? Popraw błąd autora.