早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道VB题,麻烦说明原因.PrivateFunctionfact(nAsInteger)AsIntegerfact=1DoWhilen>0fact=fact*nn=n-1LoopEndFunctionPrivateSubFormClick()DimsumAsInteger,iAsIntegerFori=4To1Step-1sum=sum+fact(i)NextPrint"Sum=

题目详情
一道VB题,麻烦说明原因.
Private Function fact(n As Integer) As Integer
fact = 1
Do While n > 0
fact = fact * n
n = n - 1
Loop
End Function
Private Sub Form_Click()
Dim sum As Integer,i As Integer
For i = 4 To 1 Step -1
sum = sum + fact(i)
Next
Print "Sum="; sum
End Sub
输出结果为什么是24?
▼优质解答
答案和解析
Private Sub Form_Click()
Dim sum As Integer, i As Integer
For i = 4 To 1 Step -1
sum = sum + fact(i)
Next
Print "Sum="; sum
End Sub
你这个过程里的循环只运行了一次,因为你把i 传到过程 fact 里,在fact里,i的值被你改了