การวนลูปและ 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) );
อธิบายว่าทำไม ผู้เขียนโค้ดนี้ต้องการทำอะไร? จงแก้ไขข้อผิดพลาดของผู้เขียน