回 帖 发 新 帖 刷新版面

主题:菜鸟提问

我是新手学VB的 是自己纯感兴趣看书学的 没有人教 也没有朋友可以讨论 因此如果问题愚蠢 希望大家热心帮我 不要嘲笑我 谢谢
Private Sub Command1_Click()
Dim fenshu As Integer
fenshu = Val(Text1.Text)
Select Case fenshu
Case 85 To 100
Label1.Caption = "优秀"
Case 74 To 84
Label1.Caption = "良好"
Case 60 To 73
Label1.Caption = "及格"
Case 1 To 59
Label1.Caption = "不及格"
Case Else
Label1.Caption = "输入错误"
End Select
End Sub
以上是我写的一段代码 是对学生的分数做出评定 问题出在"CASE 1 TO 59"这里 现在如果我输入字母或者乱七八糟的符号或汉字 便会执行Case Else后面的语句块显示"输入错误",但是不排除学生成分数为0的可能性 但如果我一将"CASE 1 TO 59"改成"CASE 0 TO 59" 虽然输入0会显示不及格,但是输入那些字母乱七八糟的符号和汉字后也会显示不及格了而不是执行Case Else后面的语句块显示"输入错误",请问怎么解决?
以下输入我所解决的方法
Private Sub Command1_Click()
Dim fenshu
fenshu = (Text1.Text)
Select Case fenshu
Case 85 To 100
Label1.Caption = "优秀"
Case 74 To 84
Label1.Caption = "良好"
Case 60 To 73
Label1.Caption = "及格"
Case 0 To 59
Label1.Caption = "不及格"
Case Else
Label1.Caption = "输入错误"
End Select
End Sub
去掉fenshu 的interger类型和函数val 这样我前面的问题暂时性解决了
但是我为了更具体的显示又加了一语句块
Private Sub Command1_Click()
Dim fenshu
fenshu = (Text1.Text)
Select Case fenshu
Case 85 To 100
Label1.Caption = "优秀"
Case 74 To 84
Label1.Caption = "良好"
Case 60 To 73
Label1.Caption = "及格"
Case 0 To 59
Label1.Caption = "不及格"
Case Is < 0, Is > 100
Label1.Caption = "分数超出范围"
Case Else
Label1.Caption = "输入错误"
End Select
End Sub
问题就出在
Case Is < 0, Is > 100
Label1.Caption = "分数超出范围"
这了 我再输入中文或者乱七八糟的东西它又不执行Case Else后的语句块 求高手教我
真心的感谢



回复列表 (共5个回复)

沙发

没有人能帮帮偶的忙吗?

板凳

1.可以先对Text1中的字符个数进行判断,没有字符或超过3个字符的退出该过程;
2.再对符合要求的字符逐个比较(反正最多只有3个字符,不影响速度),如果发现有不是0—9的字符也退出过程

3 楼

[quote]1.可以先对Text1中的字符个数进行判断,没有字符或超过3个字符的退出该过程;
2.再对符合要求的字符逐个比较(反正最多只有3个字符,不影响速度),如果发现有不是0—9的字符也退出过程
[/quote]
饿 不好意思 偶是新学的 对于您的帮助 先说声谢谢 
但能否请您 在偶的代码上修改或加入 让偶自己慢慢分析和解读呢?

4 楼

代码无缩进,声明无类型

5 楼

Private Sub Command1_Click()
Dim txtST As String, z As String, i As Integer, fenshu As Integer
txtST = Text1.Text
fenshu = Len(txtST)
If fenshu = 0 Or fenshu > 3 Then Label1.Caption = "必须为1-3个数字!": Exit Sub
For i = 1 To fenshu
  z = Mid(txtST, i, 1)
  If z < "0" Or z > "9" Then Label1.Caption = "输入了不是数字的字符!": Exit Sub
Next
fenshu = Val(txtST)
Select Case fenshu
  Case 85 To 100: Label1.Caption = "优秀"
  Case 74 To 84: Label1.Caption = "良好"
  Case 60 To 73: Label1.Caption = "及格"
  Case 0 To 59: Label1.Caption = "不及格"
  Case Else: Label1.Caption = "输入的分数超出0-100的范围!"
End Select
End Sub

提示:如果有小数(例如78.5),你还要稍加改动,这个改动就留给你做家庭作业吧!呵呵,你老是给学生留家庭作业,自己也要做做啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册