关于数组里面的几个问题
下面程序里为什么是S-1,S-2?
题目:
输入一些数据储存在动态数组A中,并将动态数组A中的数据在文本框控件中逐条显示出来。
程序如下:
Private Sub Command1_Click()
Text1 = ""
Dim s, i As Long
Dim A()
Do
ReDim Preserve A(s)
A(s) = InputBox("请输入字符串,输入空串时结束", "输入")
s = s + 1
Loop Until A(s - 1) = ""
For i = 0 To s - 2
Text1 = Text1 & "第" & CStr(i + 1) & "个是:" & CStr(A(i)) & "; "
If i = 3 Then Text1 = Text1 + Chr(13)
Next i
Erase A
End Sub
小弟是菜鸟中的战斗鸡,实在是不明白为什么用S-1。而且在定义 i时,将下届定义为S-2。。。。请大家解惑,感激涕零呀。。。
[解决办法]
Private Sub Command1_Click()
Text1 = ""
Dim s, i As Long
Dim A()
Do
ReDim Preserve A(s)
A(s) = InputBox("请输入字符串,输入空串时结束", "输入")
s = s + 1
Loop Until A(s - 1) = ""
S=S-2
For i = 0 To s
Text1 = Text1 & "第" & CStr(i + 1) & "个是:" & CStr(A(i)) & "; "
If i = 3 Then Text1 = Text1 + Chr(13)
Next i
Erase A
判断A(S-1)="",是用来读取上一次输入的值是否为空
S-2是因为你这个S是用来记录第几个数组的内容的,5个数据的话,最多就是SZ(0)到SZ(4),这样S就要减1,而你最后一个数组的内空是空的,所以S要减2
[解决办法]
声明数组时,在数组名之后跟一个用括号括起来的上界,缺省的下界为0,明白这一点就不难理解。