![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一道vb题目求过程
OptionExplicitPrivateSubCommand1_Click()DimiAsInteger,sAsIntegerFori=1To9Step3s=fun((...
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, s As Integer
For i = 1 To 9 Step 3
s = fun((i)) + fun(i)
Print s
Next i
End Sub
Private Function fun(m As Integer) As Integer
Static a As Integer
If m Mod 2 = 0 Then
a = a + 1
m = m + 1
Else
a = a + 2
m = m + 2
End If
fun = a + m
Print fun
End Function
问第1行第3行最后1行的结果?结果是5,12,25.我不知道怎么做的,还有里面的s = fun((i)) + fun(i)的fun((i)) 是什么意思呀?求高人解答,急急急 展开
Private Sub Command1_Click()
Dim i As Integer, s As Integer
For i = 1 To 9 Step 3
s = fun((i)) + fun(i)
Print s
Next i
End Sub
Private Function fun(m As Integer) As Integer
Static a As Integer
If m Mod 2 = 0 Then
a = a + 1
m = m + 1
Else
a = a + 2
m = m + 2
End If
fun = a + m
Print fun
End Function
问第1行第3行最后1行的结果?结果是5,12,25.我不知道怎么做的,还有里面的s = fun((i)) + fun(i)的fun((i)) 是什么意思呀?求高人解答,急急急 展开
1个回答
展开全部
fun((i)) 是把(i)作为参数传递,返回时不改变i的值:
在主程序中相当于首先执行s = fun(1) + fun(i);在子函数中运行fun(1),
结果是5;再运行fun(i),返回时改变i的值为3;在主程序中此时s=5+5,
Print s 结果是12;
在主程序中执行第二次循环(此时i=3+3),s = fun(6) + fun(i)...
最后结果是25
在主程序中相当于首先执行s = fun(1) + fun(i);在子函数中运行fun(1),
结果是5;再运行fun(i),返回时改变i的值为3;在主程序中此时s=5+5,
Print s 结果是12;
在主程序中执行第二次循环(此时i=3+3),s = fun(6) + fun(i)...
最后结果是25
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询