VB达人帮忙看下这段VB代码

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:31:12
Dim a, b, c, d, e, f, g As Integer

Private Sub Timer1_Timer()
a = Int(25 * Rnd)
If a = 0 Then a = Int(25 * Rnd()) Else Label1.Caption = a
End Sub

Private Sub Timer2_Timer()
b = Int(25 * Rnd)
If b = 0 Or b = a Then b = Int(25 * Rnd()) Else Label2.Caption = b
End Sub

Private Sub Timer3_Timer()
c = Int(25 * Rnd)
If c = 0 Or c = a Or c = b Then c = Int(25 * Rnd()) Else Label3.Caption = c
End Sub

Private Sub Timer4_Timer()
d = Int(25 * Rnd)
If d = 0 Or d = a Or d = b Or d = c Then d = Int(25 * Rnd()) Else Label4.Caption = d
End Sub

Private Sub Timer5_Timer()
e = Int(25 * Rnd)
If e = 0 Or e = a Or e = b Or e = c Or e = d Then e = Int(25 * Rnd()) Else Label5.Caption = e
End Sub

Private Sub Timer6_Timer()
f = Int(25 * Rnd)
If f = 0 Or f = a Or f = b Or f = c Or f = d Or f = e Then f = Int(25 * Rnd(

结构混乱,不出错才怪。
If b = 0 Or b = a Then b = Int(25 * Rnd()) Else Label2.Caption = b,这里如果b=0或b=a就再生成一个b,但是再生成的b还是有可能等于0或等于a呀,其他的判断都是这种情况。所以第二个timer事件应该这样改:
Private Sub Timer2_Timer()
b = Int(25 * Rnd)
do while b = 0 Or b = a
b = Int(25 * Rnd())
loop
Label2.Caption = b
End Sub
其他的timer事件也类似地改,就不会出现那个问题了。