Почему формула чисел Фибоначчи, когда l oop возвращает undefined в последнем числе? - PullRequest
0 голосов
/ 13 июля 2020

Почему последнее число моего числа Фибоначчи не определено?

function sumFibs(num) {
var a = 1, b = 0, temp;

while (num >= 0){
temp = a;
a = a + b;
b = temp;
num--;
console.log(b);
};
}

console.log(sumFibs(4));//1,1,2,3,5,undefined

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Поскольку вы не добавили оператор return в вызов функции: Это должно быть так -

function sumFibs(num) {
var a = 1, b = 0, temp;

while (num >= 0){
temp = a;
a = a + b;
b = temp;
num--;
console.log(b);
};
return b;
}

console.log(sumFibs(4));//1,1,2,3,5,5

Если вы удалите консоль из while l oop, вы получите результат как 5

function sumFibs(num) {
    var a = 1, b = 0, temp;
    
    while (num >= 0){
    temp = a;
    a = a + b;
    b = temp;
    num--;
    };
    return b;
    }
    
    console.log(sumFibs(4));//5
0 голосов
/ 13 июля 2020
console.log(sumFibs(4)); // executes `sumFibs`, but logs `undefined`.

Регистрирует возвращаемое значение функции sumFibs. Обратите внимание, что функция не возвращает значение, поэтому возвращаемое значение - undefined.

Внутри функции sumFibs каждое число выводится индивидуально с console.log(b). По мере выполнения функции sumFibs числа будут выводиться индивидуально. Как только функция завершится и возвращаемое значение undefined будет передано в console.log, она завершится записью undefined один раз в конце.

Чтобы исправить это

Изменить:

console.log(sumFibs(4));

... всего:

sumFibs(4);
...