Private Sub Command1_Click()
Text1.Text = ""
Dim S As Long, 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.Text = Text1.Text & "第" & CStr(i + 1) & "個是" & CStr(A(i)) & " "
Next i
Erase A
End Sub
S的初始值是“0”嗎?只輸入一條資料,那么陣列A(S)就是A(0),之后For i = 0 To S - 2的話For i = 0 To 1 - 2 是如何輸出的?
求教!
uj5u.com熱心網友回復:
初始值是0嗎?是。回圈以空輸入結束(比如輸入5條資料,程式跑起來的效果是6個inputbox,輸完5個,在第6個inputbox里直接回車),所以最終S=資料量+1,Ubound(A)=S,A(S-1)="",最后一條資料保存在A(S-2)
uj5u.com熱心網友回復:
只輸入一條資料,那S取值是0是嗎?for這里執行幾次呢?i=0 to 0-2uj5u.com熱心網友回復:
Ubound(A)=S-1,手誤。如果只有1條資料,S=2,A(0)=資料,A(1)=""。
回圈范圍是 For i = 0 To 2 - 2
uj5u.com熱心網友回復:
不好意思,S=2是怎么來的uj5u.com熱心網友回復:
S=S+1其實跑了2遍,結束的時候已經被賦予值是2,是嗎uj5u.com熱心網友回復:
程式跑起來,彈出一個inputbox,輸入第一個數,這時候S=1,這是第一次回圈;然后進入第二次回圈又彈出一個inputbox(因為A(S - 1)不是“”,沒觸發退出回圈的條件),在第二個inputbox里直接回車,什么也不輸(A(S - 1)="" 的時候才會退出回圈,這是結束標記),S=2。
uj5u.com熱心網友回復:
謝謝轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/25141.html
標籤:VB基礎類
