我看了书,是个有五个LABEL1控件哈,x+y=z
就是这样的加法,
x和y都是用的随机生成的100内的整数哈!然后,有个计算,点了后,我们输入他们随机产生的数字,有两个嘛,我们就可以直接给出答案,要是我们答对了,就把答案直接复制给z哈,就这样,我的代码是下面,那样的,可是老是对了,出不来,错了,倒是可以重新来,高手看看代码那里错了,谢谢指教
Private Sub Command1_Click()
Dim sum As Single
Dim mz As String
sum = Val(Label1.Caption) + Val(Label3.Caption)
flag = 1
mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
Do While flag = 1
info$ = InputBox$(mz$, "计算", , 4500)
If sum <> info$ Then
flag = 0
temp = MsgBox("数据不正确", 36, "数据核对框")
If temp = 6 Then
flag = 1
End If
End If
Label5.Caption = info$
LoopEnd SubPrivate Sub Command2_Click()
Unload Me
End SubPrivate Sub Form_Load()
Randomize Timer
Label1.Caption = CInt(Rnd * 100)
Label3.Caption = CInt(Rnd * 100)
End Sub

解决方案 »

  1.   

    给你的代码做个缩进
    Do While flag = 1
        info$ = InputBox$(mz$, "计算", , 4500)
        If sum <> info$ Then
            flag = 0
            temp = MsgBox("数据不正确", 36, "数据核对框")
            
            If temp = 6 Then    '看到没有,这个判断执行到的条件是上一个条件成立。
                flag = 1        '逻辑乱了吧。
            End If
        End If
        Label5.Caption = info$
    Loop
      

  2.   

    楼上的,你难道就没明白chewinggum(口香糖·dotnet转型中)的意思吗?你的逻辑混乱问题就是因为你不良的代码风格所导致。难道这个不是技术问题吗?
      

  3.   

    to:onjl(精灵) 的良言:
    楼上几位说得很正确,没有良好的代码风格,是对自己也是对别人的不尊重,谁敢改你写的程序?“乱码”很难成为技术高手的。
      

  4.   

    Private Sub Command1_Click()
        Dim sum As Single
        Dim mz As String
        sum = Val(Label1.Caption) + Val(Label3.Caption)
        flag = 1
        mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
        Do While flag = 1
            info$ = InputBox$(mz$, "计算", , 4500)
            flag = 0
            If sum <> info$ Then
                temp = MsgBox("数据不正确", 36, "数据核对框")
                If temp = 6 Then
                    flag = 1
                End If
            End If
        Label5.Caption = info$
        LoopEnd SubPrivate Sub Command2_Click()
        Unload Me
    End SubPrivate Sub Form_Load()
        Randomize Timer
        Label1.Caption = CInt(Rnd * 100)
        Label3.Caption = CInt(Rnd * 100)
    End Sub
      

  5.   

    搂主自己说的“看看代码那里错了”于是我就告诉你哪里错了让你自己改,错误的原因不是都注释在后面了?
    你的逻辑错了,我怎么知道你的真实意图是什么,怎么改?下面是我根据自己的理解给你的解答,看看是不是你想要的结果吧,如果理解错了你别骂:Private Sub Command1_Click()
    Dim sum As Single
    Dim mz As String
    sum = Val(Label1.Caption) + Val(Label3.Caption)
    flag = 1
    mz$ = "计算" + Label1.Caption + "+" + Label3.Caption
    Do While flag = 1
        info$ = InputBox$(mz$, "计算", , 4500)
        If sum <> info$ Then
            flag = 1
            temp = MsgBox("数据不正确", 36, "数据核对框")
        Else
            flag = 0
        End If
        Label5.Caption = info$
    Loop
    End SubPrivate Sub Command2_Click()
    Unload Me
    End SubPrivate Sub Form_Load()
    Randomize Timer
    Label1.Caption = CInt(Rnd * 100)
    Label3.Caption = CInt(Rnd * 100)
    End Sub问问题的时候,要把要求说清楚,
    另外请尊重帮助你的人。不管别人为你回答对了还是错了!