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);
この場合、ループは1回の反復のみを行い、関数(そしてループも)から自動的に抜け出します。1回の反復では、変数sumには必要な合計値ではなく、1という数字だけが格納されます。
以下のコードを実行した結果、コンソールには何が表示されるでしょうか:
function func(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
sum += i;
return sum;
}
}
console.log( func(5) );
その理由を説明してください。このコードの作者は何をしようとしたのでしょうか?作者のミスを修正してください。