2015年11月11日 星期三

索引在陣列的界限之外

我寫一個計算機的M+ 
Dim f As Integer = 0 
Dim q(f) As Single 
f = f + 1 
q(f) = Me.TextBox1.Text 


案1次 M+ 就 +1次f 

然後再用q(f)這個陣列存放數字 
但是一出現 索引在陣列的界限之外。 
請解釋或幫我解決哪裡出問題

------------------------------------------------------------------------------


Dim f As Integer = 0 
Dim q(f) As Single 

這是 q.length = 1 , q 的 ubound 值為 0 
f = f + 1 
用 q(1) 當然會超出範圍, 

再來, 你的 q(f) 應該是要一直累計下去 
所以你的 f, q() 應該是在 function 外宣告成全域的 

超出範圍的解決方式, 
1. 在 f = f + 1 之後, 加入一行 redim preserve q(f) 
2. q() 陣列改用 list 來做會更方便, 連 f 都用不到了