Bucla și return în JavaScript
Să presupunem că avem o funcție care returnează suma
numerelor de la 1 la 5:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // va afișa 15
Să presupunem acum că plasăm return
în interiorul buclei, astfel:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
În acest caz, bucla se va executa doar pentru o
iterație și va avea loc ieșirea automată
din funcție (și, de asemenea, din buclă). Și într-o singură
iterație a buclei în variabila sum se va afla
doar numărul 1, și nu întreaga sumă necesară.
Ce se va afișa în consolă ca rezultat al executării următorului cod:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Explicați de ce. Ce a vrut să facă autorul acestui cod? Corectați greșeala autorului.