JavaScript හි ලූපය සහ return
අප සතුව අංක 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);
මෙම අවස්ථාවේදී, ලූපය එක් පුණරාවර්තනයක් (iteration) පමණක් ක්රියාත්මක වන අතර ශ්රිතයෙන් ස්වයංක්රීයව නික්මෙයි (ඒ සමඟම ලූපයෙන්ද). එක් පුණරාවර්තනයකින් පමණක්, sum විචල්යයේ
ඇත්තේ 1 අංකය පමණක් වන අතර, අවශ්ය සම්පූර්ණ එකතුව නොවේ.
පහත කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලයක් ලෙස කොන්සෝලයේ දිස්වන්නේ කුමක්ද:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
ඇයි ද යන්න පැහැදිලි කරන්න. මෙම කේතයේ රචකයා කුමක් කිරීමට අපේක්ෂා කළේද? රචකයාගේ දෝෂය නිරාකරණය කරන්න.