ASP动态数组下标越界解决方法

在一段ASP程序中,需要定义一个动态数组,但数组大小没办法一次ReDim到位,得根据实际需要逐个增大,于是有了下边代码:

<%
Dim arr()
'赋值
For i = 1 To 10
    Redim Preserve arr(UBound(arr) + 1)
    arr(UBound(arr)) = i    
Next
'遍历
For i=0 to UBound(arr)
    Response.Write(arr(i)&"<br/>")
Next
%>

运行出错:



原因是在没有调用Redim定义数组下标前,使用UBound获得数组下标会出错,提示下标越界,对代码稍做修改即可解决:

<%
Dim arr()
ReDim arr(0)
'赋值
For i = 1 To 10
    If arr(UBound(arr)) <> "" Then
        Redim Preserve arr(UBound(arr) + 1)
    End If    
    arr(UBound(arr)) = i    
Next
'遍历
For i=0 to UBound(arr)
    Response.Write(arr(i)&"<br/>")
Next
%>


评论: 0 | 引用: 0 | 查看次数: 4271
发表评论
登录后再发表评论!