Som de utbildade vet är n-fakulteten av ett tal n!=1*2*3* ..... *n IIf måste utvärdera både "truepart" och "falsepart". Därför blir det fel.Rekursiv funktion, en undran bara.
Denna kan enkelt beräknas rekursivt med en funktion.
Public Function nFak(n as double) as double
If n=0 then
nFak = 1
Else
nFak = n * nFak (n-1)
End If
End Function
Den funkar bra men varför funkar det inte att skriva samma funktion på nedanstående vis ??
Public Function nFak(n as double) as double
nFak = IIf(n=0, 1, n * nFak (n-1))
End Function
Det är av nyfikenhet jag undrar om detta, hoppas att någon kan förklara. Tyvärr kan jag inte lyckas klura ut varför....
/peterhSv: Rekursiv funktion, en undran bara.