2017-03-20 46 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

這使得以後在生活中更容易回到您的代碼。