我正在开发一个程序,每次骰子都会计数 翻倍,但我要添加到列表框中的变量没有更新,我也不知道为什么...
代码如下:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'declare vars
Dim teal, red, doub As Integer
Dim rand As New Random
teal = rand.Next(6)
red = rand.Next(6)
#Region "Clear"
Irrelevant stuff
#End Region
'green dice
irrelevant if statement
'red dice
irrelevant if statement
'doubles
**If red = teal Then
doub = doub + 1
output.Items.Clear()
output.Items.Add("Doubles: " & doub)
End If**
End Sub
End Class
在关于骰子部分的if语句中 没有影响“ doub”变量的因素 所以这就是为什么我把“无关的if语句” 还因为stackoverflow表示帖子主要是代码
答案 0 :(得分:0)
您的doub
变量在按钮单击处理程序中声明,因此其作用域仅在该过程内。这意味着它会在每次点击后释放。您需要将其放置在按钮单击处理程序之外:
Dim doub As Integer
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Declare variables
Dim teal As Integer
Dim red As Integer
Dim rand As New Random
teal = rand.Next(6)
red = rand.Next(6)
Debug.Print(teal & "-" & red)
' Doubles
If red = teal Then
doub += 1
Debug.Print("Doubles: " & doub)
End If
End Sub
您可以在以下链接中了解变量范围:How to: Control the Scope of a Variable
输出(第一次尝试加倍!):
4-4
Doubles: 1
1-5
0-5
5-0
2-2
Doubles: 2
3-0
此快速测试显示了您的代码中的另一个问题:您可以滚动 0 ,1、2、3、4、5和6。您应该使用rand.Next(1,6)
,假设您尝试模拟掷骰子。