我不确定如何计算某些条件满足的次数

问题描述:

我在Visual Studio中构建了一个“猜词”游戏。我不确定如何计算某些条件满足的次数

发生什么是我的数组产生一个Word,并出现一个输入框。用户必须通过在输入框中输入文本来猜测该单词,如果该单词正确,则会显示一个消息框,如果没有,则会出现消息框,再次尝试。

我需要一个函数来计算用户猜测的词数。我有这个,但如果这个单词与用户输入相同,那么1会出现在我设置它出现的标签中,如果它不等于它,则会出现0。当我计算某个按钮被点击的次数时,此代码可以工作(使用不同的变量等),所以我很困惑它为什么现在不工作。

Dim guess As String 
guess = (LCase(InputBox("What is the word", "Guess the word")))  
Static hits As Integer 
hits = 0 
If word = guess Then hits += 1 
Label8.Text = hits 

其中word是我的数组生成的词。

为什么上面的代码不会增加正确的猜测数?

+3

'命中= 0'似乎运行每次显示输入框刚过时间。所以每次猜测它重置为0。只需声明该变量并在用户启动游戏时将其设置为0,并且仅在开始新游戏时将其重置为0。 – ADyson

+0

你可能在一些按钮/元素事件子里面运行了这个,你每次都重置hits变量。所以它应该被声明为全球之外的子。 –

,因为你有

Static hits As Integer 
hits = 0 

这意味着hits在每次执行行hits = 0时间设置为0,它出错。

相反,如果你使用

Static hits As Integer = 0 

然后将它初始化为0,它会做的只有一次。

+0

这是原始问题的确切答案,也是您答案的扩展......但是,让我们再给OP一个! –

正如其他人则建议,在声明的时候初始化hits变量,摆脱分配线:

Static hits As Integer = 0 ' Modify the declaration like this line 
' hits = 0 - remove this line 

另一种解决方案是在module level宣布hits变量,在这种情况下, Static关键字是没有必要的:

Private hits As Integer = 0 

无论你在你的代码喜欢的放心,它的值调用你的方法之间保存然后访问它。 在任何情况下,你需要确保,这条线走了:

hits = 0