JavaScript实现斐波那契数列代码输出错误问题排查
JavaScript斐波那契函数输出异常修复
错误原因
你的代码无法生成正确斐波那契序列,存在3处明确问题:
- 循环终止条件被破坏:
for循环的判断逻辑依赖入参n,但你在循环内部将计算得到的数列新值直接赋值给n,导致第一次循环结束后n的值就从传入的10变成了1,循环直接终止,无法继续执行 - 变量声明语法错误:
Numberi;是无效代码,循环计数器i未做声明,会意外污染全局作用域 - 冗余输出:函数开头额外打印入参
n的初始值,不属于斐波那契序列的输出内容
修正后的实现代码
function fibonacci(n) { let a = 0; let b = 1; for (let i = 0; i < n; i++) { console.log(a); // 单独用变量存储下一项的值,不改动循环依赖的入参n const nextVal = a + b; a = b; b = nextVal; } } // 输出前10项斐波那契数列 fibonacci(10);
运行结果
执行代码后会按顺序输出正确的前10项斐波那契数列:0、1、1、2、3、5、8、13、21、34
内容的提问来源于stack exchange,提问作者rajneesh sajwan
相关产品推荐
相关产品推荐

