Ciclo e return in JavaScript
Supponiamo di avere una funzione che restituisce la somma
dei numeri da 1 a 5:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
}
return sum;
}
let res = func();
console.log(res); // visualizzerà 15
Ora supponiamo di posizionare return
all'interno del ciclo, in questo modo:
function func() {
let sum = 0;
for (let i = 1; i <= 5; i++) {
sum += i;
return sum;
}
}
let res = func();
console.log(res);
In questo caso, il ciclo eseguirà solo una
iterazione e si verificherà un'uscita automatica
dalla funzione (e, di conseguenza, dal ciclo). E in una
sola iterazione del ciclo, nella variabile sum si troverà
solo il numero 1, e non l'intera somma richiesta.
Cosa verrà visualizzato nella console come risultato dell'esecuzione del seguente codice:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
Spiegate il perché. Cosa voleva fare l'autore di questo codice? Correggere l'errore dell'autore.