2015-07-28 51 views
1

我的代码新手和即时通讯使用此代码。看起来,我总是从这个函数得到真实的响应。我究竟做错了什么 ?Visual Basic - 函数来检查数字是否是二进制的

Private Function binary() As Boolean 
    Dim number, temp As Integer 
    Dim status As Boolean 
    TextBox1.Text = number 
    status = True 

    While (True) 
     If (number = 0) Then 
      Exit While 
     Else 
      temp = number Mod 10 
      If (temp > 1) Then 
       status = False 
       Exit While 
      End If 
      number = number/10 
     End If 
    End While 

    Return status 

End Function 

回答

2

你有你的分配方式不对周围:

TextBox1.Text = number 

有了这个,number将始终为0,其初始值,所以你While循环立即退出,每一次。它应该是:

number = Convert.ToInt32(TextBox1.Text) 

或者更好的是,在把它作为参数传递给函数:

Private Function binary(number as Integer) As Boolean 
    Dim temp As Integer 
    Dim status As Boolean 

    status = True 

    While (True) 
     If (number = 0) Then 
      Exit While 
     Else 
      temp = number Mod 10 
      If (temp > 1) Then 
       status = False 
       Exit While 
      End If 
      number = number/10 
     End If 
    End While 

    Return status 
End Function 

然后:

Dim isBinary as Boolean 
isBinary = binary(Convert.ToInt32(TextBox1.Text)) 
+0

我知道,我不是想去做这个(但因为我不能做任何其他)我必须给你一些信用,所以**非常感谢你詹姆斯**。 – grunf00

相关问题