VB编程问题,vb function 缺少语句结束
PrivateSubCommand1_Click()DimaAsDouble,bAsDouble,cAsDouble,iAsIntegera=CDbl(Text1.Tex...
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double, i As Integer
a = CDbl(Text1.Text)
End Sub
Function c(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal i As Integer) As Double
b = 0
For i = 1 To 4
c = 1.005 * b + a
Return c
b = c
Next i
End Function
运行就显示语句结束,应该怎么改,另外怎么可以在text2里显示c的四个值,谢谢
急,在线等,
问题补充~:c的四个值,是指for-next 里面计算出来c的四个值 展开
Dim a As Double, b As Double, c As Double, i As Integer
a = CDbl(Text1.Text)
End Sub
Function c(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal i As Integer) As Double
b = 0
For i = 1 To 4
c = 1.005 * b + a
Return c
b = c
Next i
End Function
运行就显示语句结束,应该怎么改,另外怎么可以在text2里显示c的四个值,谢谢
急,在线等,
问题补充~:c的四个值,是指for-next 里面计算出来c的四个值 展开
3个回答
展开全部
结构问题吧,VB不是很熟,从.NET宏观角度来看,你把return写在循环里,表达的意思是不同的
调用结构其实是command_click -> function c -> for ... -> return function,
你每次都是开始了一个循环,执行了一次i=1时候的操作并返回,b=c,和 next i根本没有机会执行到……(关键概念,每次函数执行结束后,函数内的局部变量一般会被销毁,下次执行时候的局部变量其实是完全不同的新变量,从内存的角度来说,多次执行的局部变量不一定会使用相同的内存)
另,记得vb好像写for的话,需要有个end for的(不确定,有7-8年没写了吧)
调用结构其实是command_click -> function c -> for ... -> return function,
你每次都是开始了一个循环,执行了一次i=1时候的操作并返回,b=c,和 next i根本没有机会执行到……(关键概念,每次函数执行结束后,函数内的局部变量一般会被销毁,下次执行时候的局部变量其实是完全不同的新变量,从内存的角度来说,多次执行的局部变量不一定会使用相同的内存)
另,记得vb好像写for的话,需要有个end for的(不确定,有7-8年没写了吧)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.在command1定义了c不能用c作为函数名来调用。
2. function b,c,i传递的参数都 是没有意义的。
3.如果要返回4个值只能将函数设成字符型的,返回字符串。或者直接赋值给text2
4.不能用Return c
5.函数中 b=0,所以 c=1.005*b+a始终=a,算法可能有错误,而且与i也没有关系啊。
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double, i As Integer
a = CDbl(Text1.Text)
Text2.Text = cc(a)
End Sub
Function cc(ByVal a As Double)
b = 0
For i = 1 To 4
c = 1.005 * b + a '具体算法可能不对。
cc = cc & " " & c
Next i
End Function
2. function b,c,i传递的参数都 是没有意义的。
3.如果要返回4个值只能将函数设成字符型的,返回字符串。或者直接赋值给text2
4.不能用Return c
5.函数中 b=0,所以 c=1.005*b+a始终=a,算法可能有错误,而且与i也没有关系啊。
Private Sub Command1_Click()
Dim a As Double, b As Double, c As Double, i As Integer
a = CDbl(Text1.Text)
Text2.Text = cc(a)
End Sub
Function cc(ByVal a As Double)
b = 0
For i = 1 To 4
c = 1.005 * b + a '具体算法可能不对。
cc = cc & " " & c
Next i
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Function c(ByVal a As Double, ByVal b As Double, ByVal c As Double, ByVal i As Integer) As Double
b = 0
For i = 1 To 4
c = 1.005 * b + a
Return c ---------------------------这里什么意思啊
b = c
Next i
End Function
b = 0
For i = 1 To 4
c = 1.005 * b + a
Return c ---------------------------这里什么意思啊
b = c
Next i
End Function
追问
就是返回c的值
追答
问题解决了,请尽快结贴
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询