函数返回0 Visual Basic数组

时间:2013-09-19 20:27:57

标签: arrays vb.net

我在使用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)

1 个答案:

答案 0 :(得分:3)

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

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

按原样修复数组声明,改为返回arrayFib(n)。