2017-03-20 43 views
-1

我在VB上有这段代码。我没有得到语法错误,但在运行和测试数字时,我得到“数字无效”或错误的答案。你能帮我解释一下这段代码有什么问题吗?谢谢。if,elseif,searching,comparison,greater,smaller

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 
+7

VS带有一个调试器,它非常适合解决这类问题。您也应该参加[tour] – Plutonix

+4

不要以为您的文本框中有一个有效的号码。改为使用[Integer.TryParse](https://msdn.microsoft.com/en-us/library/f02979c7(v = vs.110).aspx)。 – LarsTech

+3

** [橡皮鸭调试](https://en.wikipedia.org/wiki/Rubber_duck_debugging)** – Plutonix

回答

6

这是不可能的

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

在这里,你问的是一个数量更大,等于大于200(OK),超过500等于低(OK)和超过900个相等的情况下(不好,因为你已经要求一个低于500的数字)。一个数字不能低于500且大于900.

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

+5

也'ElseIf Num <= 700和Num> = 501和Num> = 750和Num <= 900然后' – Plutonix

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

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