Vb6 使用MOD和嵌套

Vb6 使用MOD和嵌套,vb6,division,nested,Vb6,Division,Nested,我对使用VB很陌生,而且我是编程新手,所以我为糟糕/不整洁的代码道歉:p 我看不出我做错了什么。程序应该从用户那里得到3个数字,这3个数字必须相加,然后被3整除才有效。此外,该数字不能比上一个数字少1。未能遵守这些“规则”将导致出现一个消息框,提示SIDESWAP无效。我认为MOD部分有问题,因为无论我输入什么,它总是返回有效的SIDESWAP。任何帮助都将不胜感激: Dim FirstNumber, SecondNumber, ThirdNumber As Integer Private S

我对使用VB很陌生,而且我是编程新手,所以我为糟糕/不整洁的代码道歉:p

我看不出我做错了什么。程序应该从用户那里得到3个数字,这3个数字必须相加,然后被3整除才有效。此外,该数字不能比上一个数字少1。未能遵守这些“规则”将导致出现一个消息框,提示SIDESWAP无效。我认为MOD部分有问题,因为无论我输入什么,它总是返回有效的SIDESWAP。任何帮助都将不胜感激:

Dim FirstNumber, SecondNumber, ThirdNumber As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    TextBox1.Text = FirstNumber
    TextBox2.Text = SecondNumber
    TextBox3.Text = ThirdNumber

    If (FirstNumber + SecondNumber + ThirdNumber) Mod 3 = 0 Then
        If (FirstNumber - SecondNumber) <> 1 And (SecondNumber - ThirdNumber) <> 1 And (ThirdNumber - FirstNumber) <> 1 Then
            MsgBox("VALID SIDESWAP")
        Else
            MsgBox("INVALID SIDESWAP 1")
        End If
    Else
        MsgBox("INVALID SIDESWAP 2")
    End If
End Sub

只要你在文本框中输入数字,赫里希所说的是正确的,并且可以解决问题。 如果要避免任何错误,快速方法是:

Firstnumber = val(Textbox1.text)
等等。 如果您将整数用于firstnumber,val也将识别小数,因此您也可以使用cdbl

Firstnumber = cdbl(Textbox1.text)
但是空文本框将生成错误,因此请使用组合

Firstnumber = cdbl(val(Textbox1.text))

假设这是所有的代码,你的第一个号码,第二个号码,第三个号码永远不会被设置。它们的默认值为0,这意味着您将始终获得有效值。我认为你的点击方法的前3行是向后的。如果要将FirstNumber设置为TextBox1中的任何值,则需要使用FirstNumber=TextBox1.Text。当然,您还需要验证TextBox1.Text是否是一个有效的数字。非常感谢,这就解决了这个问题。这似乎是一个愚蠢的错误:PBe意识到,您的代码目前将FirstNumber和SecondNumber声明为隐式变量,而不是整数。我假设您希望将Dim FIRSTNAME写为整数,SecondNumber写为整数,ThirdNumber写为整数。非常感谢,我还将在中添加: