※ 引述《collegeman (花生)》之銘言:
: ※ 引述《shiningstar (期待冒險)》之銘言:
: : 我是vb6.0的新手,最近想寫個樂透49選1的程式來玩
: : 我建了一個CheckBox陣列,按Command Button會將選中的數勾選
: : 並顯示在下面的Label上,部分程式如下:
: : Private Sub Command1_Click()
: : Dim ArrayShow(6) As Integer
: 1. 你只需要放6個數字, 其實宣告成5即可
: Dim ArrayShow(5) As Integer
: : Dim str1 As String
: : Dim I, J, K As Integer
: : I = 0
: : J = 0
: : For I = 0 To 48
: : Check1(I).Value = False
: : Next I
: : Randomize
: 2. Check1 array的index為 0 - 48 , 但是你下面卻對Check1 array的index 1- 49
: access
: : Begin:
: 3. 其實你上面這行begin放不放是沒差的
: : Do Until J > 5
: : K = Int(Rnd * 49 + 1)
: 4. 產生的K值將會是1 - 49, 而不是0 - 48
: : If Check1(K).Value = 1 Then
: : GoTo Begin:
: 5. GoTo Begin: 這行有放沒放都一樣
: : Else
: : Check1(K).Value = 1
: : ArrayShow(J) = K
: : J = J + 1
: : str1 = str1 & " " & ArrayShow(J)
因為我當初放這兩個的用意是 不要讓它抽到重複的數
不過這樣放系統會顯示 編譯錯誤:有LOOP,卻沒有DO
如果把這兩個都去掉的話,就會有抽到同樣數字的可能性 :(
: 6.請把下面這兩行之上下順序對調
: J = J + 1
: str1 = str1 & " " & ArrayShow(J)
謝謝!!
當時寫的時候頭昏昏 把順序搞錯了 thx~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.86.153