繁体   English   中英

数组返回0的函数Visual Basic

[英]Function with array returning 0 Visual Basic

我在Visual Basic中使用数组和函数还很新,我似乎无法弄清楚。 我的问题是,每当我调用函数Fibo ,无论n的值是多少,它都会返回0。 我确定错误是很基本的。

任何指针将不胜感激!

Public Function fibo(n As Integer) As Integer

    Dim arrayFib(n + 1) As Integer 'declare array to hold fibonacci

    arrayFib(0) = 0 'idem
    arrayFib(1) = 1 'declare start value

    Dim i As Integer = 2 'start position

    While i <= n
        arrayFib(i) = arrayFib(i - 1) + arrayFib(i - 2)
        i = 1 + i

    Return arrayFib(i)
Dim arrayFib(n + 1) As Integer 'declare array to hold fibonacci

我们可以猜测+1的来源。 之所以添加它,是因为原始代码因IndexOutOfRangeException而崩溃。 由您返回arrayFib(i)引起,i递增到大于 n,循环后其值为n + 1。 从而返回从未分配的元素的值。 您没有正确解决它:)

将数组声明恢复为原来的样子,然后返回arrayFib(n)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM