注册 登录
编程论坛 VB6论坛

case 为什么运转不起来呢?

苍穹之舞 发布于 2014-10-07 09:16, 486 次点击
我写了个猜数字的代码,就是窗体随机生成一个100以内的数字,然后你向文本框里填入你猜测的数字,如果大了,消息框提示你大了,如果小了,就提示你小了,直到猜测对了为止

我做了,可是无论我填入什么数字,都显示大了,哪怕是1

这究竟是怎么回事??
Private Sub Form_Load()
Dim c
Randomize
c = Int((100 * Rnd) + 1)
End Sub

Private Sub Command1_Click()
Dim b As Integer

b = Val(Text.Text)

Select Case b
Case Is = c
MsgBox "恭喜你答对了"

Case Is > c:
MsgBox "太大了"
Text.SetFocus
Case Is < c:
MsgBox "太小了"
Text.SetFocus
End Select

List1.AddItem "你回答的数字是" & b

Randomize

End Sub
5 回复
#2
苍穹之舞2014-10-07 09:16
我换成常量,试了,还不行啊,这究竟怎么了?很简单的东西,是我写错了,还是我的VB软件有毛病?不可能的啊
#3
chen35232014-10-07 22:27
Dim c As Integer
Private Sub Form_Load()
Randomize
c = Int((100 * Rnd) + 1)
End Sub

Private Sub Command1_Click()
Dim b As Integer

b = Val(Text.Text)

Select Case b
Case Is = c
    MsgBox "恭喜你答对了"
Case Is > c
   MsgBox "太大了"
   Text.SetFocus
Case Is < c
   MsgBox "太小了"
   Text.SetFocus
End Select

List1.AddItem "你回答的数字是" & b
End Sub
#4
yangfrancis2014-10-10 22:34
关键是c要在通用里面定义,否则按钮点击事件里的c仍然算作新定义的,与form_load中赋的值不相干,只能是0。如果在通用的最前面加一句Option Explicit就能检测出这一点。
#5
穿梭的粒子2014-10-13 14:44
这究竟是怎么回事??
Private Sub Form_Load()
Dim c

你只要把上面的两行代码 ,调换下位置就可以了
Dim c
Private Sub Form_Load()


希望你能弄明白什么全局变量的作用
#6
苍穹之舞2014-10-20 15:37
感谢各位指点,我已经搞清楚了
1