if,elseif,搜索,比较,更大,更小

时间:2017-03-20 15:19:03

标签: vb.net

我在VB上有这个代码。我没有语法错误,但在运行和测试数字时,我得到"数字无效"或者错误的答案。你能帮我解决这段代码有什么问题吗?谢谢。

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    TextBox2.Text = ""
    Dim Num As Integer
    Dim str As String
    str = TextBox1.Text
    Num = Integer.Parse(str)


    If Num >= 100 And Num <= 199 Then

        TextBox2.Text = "Basement"

    ElseIf Num >= 200 And Num <= 500 And Num >= 900 Then

        TextBox2.Text = "Main Floor"

    ElseIf Num <= 700 And Num >= 501 And Num >= 750 And Num <= 900 Then

        TextBox2.Text = "Upper Floor"

    ElseIf Num <= 750 And Num >= 700 Then

        TextBox2.Text = "Archives"
    Else
        TextBox2.Text = "Number is not valid"
    End If

End Sub

2 个答案:

答案 0 :(得分:6)

这是不可能的

ElseIf Num >= 200 And Num <= 500 And Num >= 900 Then

这里你要求的数字大于等于200(ok),低于等于500(ok)且大于等于900(不好,因为你已经要求一个低于500的数字) 。数字不能低于500且高于900。

如果没有要求,很难知道你的if语句应该是什么样子。我建议你手动运行你的代码&#34;在纸上&#34;或者一次从一个if语句开始,而不是写下所有语句。

答案 1 :(得分:2)

我不会混合到一行中的许多支票,因为它会让人感到困惑。

做这样的事情:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    TextBox2.Text = ""
    Dim Num As Integer
    Dim str As String
    str = TextBox1.Text
    Num = Integer.Parse(str)

    If Num >= 100 And Num <= 199 Then
        TextBox2.Text = "Basement"
    ElseIf Num >= 200 And Num <= 500 Then
        TextBox2.Text = "Main Floor"
    ElseIf Num >= 501 And Num <= 700 then
        TextBox2.Text = "Upper Floor"
    ElseIf Num ..... and so on
    Else
        TextBox2.Text = "Number is not valid"
    End If

End Sub

TextBox控件和任何其他控件命名也是一种很好的做法:

  • textbox1可能类似txtfloornumber
  • textbox2可能类似txtfloorname

这使得以后的代码更容易回到您的代码中。