0
Public Class Form1
Dim num1 As Integer = CInt(Int((10 * Rnd()) + 1))
Dim num2 As Integer = CInt(Int((10 * Rnd()) + 1))



End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    TextBox2.Text = num1 & "*" & num2
End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged

End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    If TextBox1.Text = num1 * num2 Then
        Label2.Text = "Correct!!11"
    Else
        Label2.Text = "Incorrect, sorry about that"
    End If
End Sub

结束类

当我运行这段代码时,它只会产生一个问题。这是6 * 8。如果我输入 48,它可以工作。但是如果我再次单击该按钮,它将不会产生另一个问题。它只会生成 6*8。我需要它能够生成 1-10 的随机乘法问题

4

2 回答 2

3

num1当表单的实例被初始化时,您只生成num2一次,因此每次单击按钮时,它只是重用相同的值。

每次单击按钮时,您都应该生成一个新值:

Dim num1 As Integer
Dim num2 As Integer

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    num1 = CInt(Int((10 * Rnd()) + 1))
    num2 = CInt(Int((10 * Rnd()) + 1))
    TextBox2.Text = num1 & "*" & num2
End Sub
于 2013-06-11T13:58:54.197 回答
0

如果每次运行程序时都得到 6*8,包括完全停止和重新运行,那真的很奇怪,我不确定这是怎么回事。

但是,如果只是每次单击按钮时都会遇到相同的问题,那是因为您在声明变量时输入了 Rnd() 。如果您每次都想要一个新的随机数,则必须放入某种循环,每次都重新分配变量。

于 2013-06-11T14:00:47.250 回答