Βρόχος και 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) );
Εξηγήστε γιατί. Τι ήθελε να κάνει ο συγγραφέας αυτού του κώδικα; Διορθώστε το λάθος του συγγραφέα.