易截截图软件、单文件、免安装、纯绿色、仅160KB

vb循环

Option Explicit
Dim N As Integer
Private Sub Command1_Click()
    Dim A As Integer, B As Integer
    A = 2: B = 3
    For N = 1 To 6
      If N Mod 2 = 0 Then
          B = Fun(N, A) + A
      Else
          A = Fun(B, N) + B
      End If
    Next N
    Print N, A, B
End Sub
Private Function Fun(X As Integer, Y As Integer) As Integer
    X = Y - 1 + N
    Y = X + Y - N
    Fun = X + Y
End Function

为什么是10  27    9
N不是最大就是6了吗?10是怎么得出来的啊
A,B又是怎么算出来的啊 


因为你的fun是以byref形式,所以当你把N传进去的时候在fun里面对于对于函数值得改变N也随之变化了

其实你可以断点debug下就知道了

Private Function Fun(ByVal X As Integer, ByVal Y As Integer) As Integer
    X = Y - 1 + N
    Y = X + Y - N
    Fun = X + Y
End Function

引用
因为你的fun是以byref形式,所以当你把N传进去的时候在fun里面对于对于函数值得改变N也随之变化了

其实你可以断点debug下就知道了

就是这个原因。
VB中,变量的传递默认是 ByRef 的。




相关问答:

关于vb模块函数的调用,请高手解答

请看看以下导出文本文件的模块函数,我应该怎么在按钮点击事件中实现调用。

Option Explicit

Public Function TabintoTxt(objConn As Object, TableName As String, Optional TextFileName As String) ......

如何通过 VB 获得 google 翻译的结果?

从网上找了一个版本,源代码如下:

VB code:
Option Explicit
'Global DefLang As String
Const WebURL As String = "http://translate.google.com/translate_t"
Const SearchString As Strin ......

如何用vb實現以下邏輯?

出錯的時候去執行一段代碼之後,再回到出錯的地方接著往下執行

如何用vb來實現?
Sub FFFFFFF()

AAAA:
On Error goto BBBB
....
.... ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号