关于vb选择结构的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:02:21
Private Sub Form_Click()
Dim s As Single
s = Val(InputBox("消费金额为:", "金额"))
Select Case s
Case s >= 1000 And s < 2000
s = s * 0.95
Case s >= 2000 And s < 3000
s = s * 0.9
Case s >= 3000 And s < 4000
s = s * 8.5
Case s >= 4000
s = s * 0.8
End Select
Print s
End Sub

这段代码有什么错误啊,请高手指点,我知道是case后面的关系表达式的问题,不知道为什么?必须用Is么?如果用1000 to 2000 就无法表示边界了吧?高手指点!

首先指出一处笔下误:8.5应为0.85

再者,鉴于select case当运行完一处“真”后,会直接跳出select;又因为你这里的区间都是左闭右开的,故使用To也可以实现你要求的功能。我小改了一下,贴出来:

Private Sub Form_Click()
Dim s As Single
s = Val(InputBox("消费金额为:", "金额"))
Select Case s
Case Is >= 4000
s = s * 0.8
Case 3000 To 4000
s = s * 0.85
Case 2000 To 3000
s = s * 0.9
Case 1000 To 2000
s = s * 0.95
End Select
Print s
End Sub

这个select case还真是好用的很,灵活得很呢!我不是高手。啦啦啦。^_^

Select Case s
Case Is < 1000
Case Is < 2000
s = s * 0.95
Case Is < 3000
s = s * 0.9
Case Is < 4000
s = s * 8.5
Case Else
s = s * 0.8
End Select

这就是设计vb的人设计的不好啊

要是你或者我去设计

至少这一点我们做的比他们好啊