我正在尝试创建一个简单的程序,用户输入1到100之间的标记,并根据输入的标记在标签上显示某个等级。我开始使用较小的程序,如果标记在0到100之间,则显示文本OK,但如果它大于100,则显示NOT OK。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Grade = InputBox("What was the mark of the student?")
If 0 < Grade < 100 Then
Label1.Text = "OK"
ElseIf Grade > 100 Then
Label1.Text = "NOT OK"
End If
但即使我输入数量超过100,目前仍然显示OK。我该如何解决这个问题?
答案 0 :(得分:1)
您可以像这样使用If
:
If Grade > 0 And Grade <= 100 Then
Label1.Text = "OK"
Else
Label1.Text = "NOT OK"
End If
您不能使用这样的表达式:0 < Grade < 100
还可以更好地验证您的用户输入:
Dim Grade As Integer = 0
Try
Grade = CInt(InputBox("What was the mark of the student?"))
Catch ex As Exception
End Try
答案 1 :(得分:0)
您遇到的问题是0 < Grade < 100
编译器认为你的意思是:(0 < Grade) < 100
您无法像这样评估一个表达式中的两个数值。请注意,您应该切换 Option Strict On ,这将不允许此行编译。
你想要的是这样的:
If 0 <= Grade AndAlso Grade <= 100 Then
我真的建议你不要使用InputBox来提示范围内的数值。只需创建自己的表单,将NumericUpDown控件设置为Min = 0和Max = 100,然后就可以保证用户只能输入有效的数值。