如何得到偶数或奇数

时间:2014-06-14 14:29:10

标签: vb.net visual-studio-2010 visual-studio-2012

我不知道为什么这个程序不起作用。我得到一个随机数,计算机选择什么类型的偶数或奇数?

Dim a As New Random()

    Dim b As Integer
    Dim ca As Integer
    b = a.Next(0, 10)
    Debug.Print(b)

    ca = b / 2

    If ca = 0 Then
        Debug.Print("Even")
    Else
        Debug.Print("Odd")
    End If

3 个答案:

答案 0 :(得分:12)

你弄乱了你的操作员。

您使用了分区/,但您想使用模运算符Mod

请注意:在C#中它是%。在VB.Net中,它是Mod

参考:http://msdn.microsoft.com/en-us/library/se0w9esz(v=vs.100).aspx

Dim a As New Random()
Dim b As Integer
Dim ca As Integer
b = a.Next(0, 10)
Debug.Print(b)

ca = b Mod 2

If ca = 0 Then
    Debug.Print("Even")
Else
    Debug.Print("Odd")
End If

为什么您的代码无法正常工作: 罪魁祸首确实是你的if语句。您正在检查b / 2的结果是否为0.但只有b本身为0时才会出现这种情况。每个大于0的数字除以一半大于零。

您的代码看起来像是要检查除法的其余部分,因此使用模运算符的解决方案。

答案 1 :(得分:6)

你也可以检查低位,如果它是在数字是奇数,如果它是关闭数字是偶数。使用函数:

    Dim a As New Random()
    Dim b As Integer
    b = a.Next(0, 10)
    Debug.WriteLine(b)
    If isEven(b) Then
        Debug.WriteLine("even")
    Else
        Debug.WriteLine("odd")
    End If

Private Function isEven(numToCheck As Integer) As Boolean
    Return (numToCheck And 1) = 0
End Function

编辑:可能比mod快,但没有检查过。

答案 2 :(得分:0)

Private sub command1_click()
   Dim a as integer
   a = text1.text
   If a mod 2=0 then
      Print a & " is even"
   Else
      Print a & "is odd"
   Endif
End sub