Bonjour , j 'ai tenté de calculer une factorielle d'un entier par deux façon d’écrire mon code :
Function recc(n As Integer) As Integer
z = z * n
n = n - 1
If n <> 1 Then
recc n
Else
MsgBox z
End If
End Function
Sub try()
z = 1
recc 5
End Sub
là ca marche par contre avec cette seconde facon :
Function recc(n As Integer) As Integer
z = z * n
n = n - 1
If n <> 1 Then
recc n
Else
recc = z
End If
End Function
Sub try()
z = 1
MsgBox recc(5)
End Sub
en mode pas à pas j'arrive sur la ligne recc= z ou j'ai bien 120 qui est la resultat attendu ensuite le compilateur fait des aller retour entre "end if" et "end function " et ma valeur
recc est perdu et devient 0 , je n'arrive pas à me l'expliquer , ou alors est une facon de coder qui n'est pas la bonne ?
Merci pour toute suggestions .
Cordialement