循环的斐波那契代码不返回值

Fibonacci code for loop not returning values

我正在尝试制作一个代码,您可以在其中输入一个数字 n,而代码 returns 您可以输入斐波那契数列中的数字。 例子: 输入n=1时密码returns1,输入n=2时密码returns1,输入n=3时密码returns2,以此类推。 我是 javascript 的新手,所以我不知道该怎么做。

<html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var a, b, n, result;
    a = 0;
    b = 1;
    for (var i = 0; i <= n; i++)
    {
        if(n == 1)
        {
            return 1;
        }
        if(n == 0)
        {
            return 0;
        }
        result = a + b;
        a = b;
        b = result;
        
    }
    document.getElementById("result").value = result;
    }
    </script>
    <form>
        <input id="n" type="number" placeholder="N">
        <input id="result" type="number" placeholder="Result" readonly="">
        
        <input id="calculate" type="button" value="Calculate" onclick="fibonacci()">
        <input type="reset" value="Clear">
    </form>
</body>
</html>

你没有初始化n吧?

在 for 循环之前添加这一行。

n =  document.getElementById("n").value

检查您的浏览器控制台是否有错误,它会正确显示此类错误..

  1. 你应该初始化n。
  2. 然后从 for 循环块中删除 n==0 和 n==1。
  3. 更新您的代码,
<html>
<body>
    <script type="text/javascript">
    function fibonacci(){
    var n = document.getElementById("n").value;
    var result;
    var a = 0;
    var b = 1;
    if(n == 0 || n == 1)
    {
        result = n;
    }
    else{
      for (var i = 2; i <= n; i++)
      {
          result = a + b;
          a = b;
          b = result;

      }
    }
    document.getElementById("result").value = result;
    }
    </script>
    <form>
        <input id="n" type="number" placeholder="N">
        <input id="result" type="number" placeholder="Result" readonly="">
        
        <input id="calculate" type="button" value="Calculate" onclick="fibonacci()">
        <input type="reset" value="Clear">
    </form>
</body>
</html>