我编了一个计算的小程序,其中包含两个自定义的函数过程
Dim alfa, beta, gama Function FE2n(al, be, n As Integer) c5 = Log((alfa + Sqr(alfa ^ 2 + beta ^ 2)) / (1 + Sqr(1 + beta ^ 2))) FE2n(al, be, n) = be * c5 * M2n(n) End Function Function M2n(n As Integer) c1 = 1 / (1 + beta ^ 2) c2 = beta ^ 2 / (1 + beta ^ 2) c3 = alfa ^ 2 / (alfa ^ 2 + beta ^ 2) c4 = beta ^ 2 / (alfa ^ 2 + beta ^ 2) c5 = Log((alfa + Sqr(alfa ^ 2 + beta ^ 2)) / (1 + Sqr(1 + beta ^ 2))) If n = 0 Then M2n = 1 ElseIf n = 1 Then M2n = (Sqr(c1) ^ 3 - Sqr(c2) ^ 3) / (2 * beta ^ 2 * c5) ElseIf n = 2 Then M2n = (Sqr(c1) ^ 3 * (1 + 3 * c2 / 2 + 15 * c2 ^ 2 / 2) - Sqr(c3) ^ 3 * (1 + 3 * c4 / 2 + 15 * c4 ^ 2 / 2)) / (12 * beta ^ 4 * c5) ElseIf n = 3 Then X1 = 1 + 3 * c2 / 2 + 15 * c2 ^ 2 / 8 - 35 * c2 ^ 3 / 4 + 315 * c2 ^ 4 / 8 X2 = 1 + 3 * c4 / 2 + 15 * c4 ^ 2 / 8 - 35 * c4 ^ 3 / 4 + 315 * c4 ^ 4 / 8 M2n = (Sqr(c1) ^ 3 * X1 - Sqr(c3) ^ 3 * X2) / (30 * beta ^ 6 * c5) End If End Function
为什么程序反复的在这两个函数过程之间运行,以至最后堆栈溢出。确切的说就是程序根本就不运行绿色的那句,到了绿色那行得上一句调用完函数过程M2n之后就又回到了Function FE2n(al, be, n As Integer)这一句,有没有那位高手知道,麻烦帮一下忙!
感激不尽