Цикъл и return в JavaScript
Нека имаме функция, която връща сумата
на числата от 1 до 5:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // ще изведе 15
Нека сега поставим return
вътре в цикъла, ето така:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
В този случай цикълът ще се изпълни само една
итерация и ще се излезе автоматично
от функцията (а заедно с това и от цикъла). А за една
итерация на цикъла в променливата sum ще се окаже
само числото 1, а не цялата необходима сума.
Какво ще се изведе в конзолата в резултат на изпълнението на следния код:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Обяснете защо. Какво е искал да направи авторът на този код? Поправете грешката на автора.