查看: 448  |  回复: 0
  VB6 For i = 0 To UBound(arrB)的UBound(arrB)是否需要先做成一个变量避免每个循环都计算?
楼主
发表于 2024年2月29日 16:12

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Sub Command1_Click()
    Dim i As Long
    Dim arrB() As Byte
    ReDim arrB(3)

    For i = 0 To UBound(arrB)
        Debug.Print i
        ReDim arrB(5)
    Next

    Debug.Print "------"
    i = 0
    
    Dim intN As Integer
    intN = 4
    For i = 0 To intN
        Debug.Print i
        intN = 8
    Next
End Sub

运行结果:

 0 
 1 
 2 
 3 
------
 0 
 1 
 2 
 3 
 4

看来For i的时候已经固化,不会修改i的范围,所以无需把UBound(arrB)是先做成一个变量。做成变量反而需要更多的代码和CPU时间。

按一步步运行发现,不会到For那行,所以不会影响。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com