涉及运营商不工作的计划

时间:2014-07-31 09:54:36

标签: vb.net

我正在尝试创建一个简单的程序,用户输入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。我该如何解决这个问题?

2 个答案:

答案 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,然后就可以保证用户只能输入有效的数值。