如何得到偶数或奇数

Did*_*idy 4 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
Run Code Online (Sandbox Code Playgroud)

Mar*_*rco 13

你弄乱了你的经营者.

您使用除法/,但您想使用模运算符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
Run Code Online (Sandbox Code Playgroud)

为什么你的代码没有按预期工作:罪魁祸首确实是你的if语句.您正在检查结果是否b / 2为0.但是只有当b它为0时才能为真.每个大于0的数字除以一半大于零.

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


dba*_*ett 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
Run Code Online (Sandbox Code Playgroud)

编辑:可能比mod快但未检查.