我的分数计数器有问题不计算,当msgbox弹出时,它没有显示收到的分数,只是" 0"。我已经查看了各种其他问题,告诉我们如何使用程序计数器的答案,但他们的解决方案似乎对我不起作用。
Dim grade1, percentage1 As String
Dim score1 As Integer
^^ declorations
score1 = "0"
If RadioButton1.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton2.Checked = True Then
score1 = score1 + 0
End If
If RadioButton4.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton3.Checked = True Then
score1 = score1 + 0
End If
If RadioButton5.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton6.Checked = True Then
score1 = score1 + 0
End If
If RadioButton8.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton7.Checked = True Then
score1 = score1 + 0
End If
If RadioButton9.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton10.Checked = True Then
score1 = score1 + 0
End If
Select Case score1
Case 1
score1 = 0
grade1 = "U" & percentage1 = "0%"
Case 2
score1 = 1
grade1 = "D" & percentage1 = "20%"
Case 3
score1 = 2
grade1 = "C" & percentage1 = "40%"
Case 4
score1 = 3
grade1 = "B" & percentage1 = "60%"
Case 5
score1 = 4
grade1 = "A" & percentage1 = "80%"
Case 6
score1 = 5
grade1 = "A*" & percentage1 = "100%"
End Select
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MsgBox("Your score is" + score1.ToString, MsgBoxStyle.Information)
MsgBox("Your grade is" + grade1, MsgBoxStyle.Information)
MsgBox("Your percentage is" + percentage1, MsgBoxStyle.Information)
End Sub
答案 0 :(得分:1)
(我希望这个问题仍然有效?) 我想根据你的问题,你仍然是编程的初学者。 鲍勃提供了一些有用的提示,现在我尝试回答你的问题。 有几件事,你需要改变和其他一些改进。
首先:
score1 = "0"
应为score1 = 0
。
您将score1声明为整数,但使用引号尝试将其值设置为字符串。像Plutonix提到的那样。
第二名:
你想做一个小的多项选择测验游戏并使用单选按钮。据我所知,单选按钮的创建只能强制选择一个。 如果您检查一个单选按钮,则所有其他单选按钮将取消选中。 您应该选择的控件是复选框。 提示:请注意,用户可以选中两个复选框。如果选中一个,则应禁用另一个,直到取消选中第一个框。
第三:
你问,你应该写什么,而不是score1 = score1+0
。
答案:没什么。如果您在这种情况下没有编写代码,则不会发生任何事情,分数也不会改变。
E.g。 - >
If CheckBox9.Checked = True Then
score1 = score1 + 1
ElseIf RadioButton10.Checked = True Then
End If
但是你可以更多地改进这个代码。 CheckBox.Checked是一个函数,它返回一个布尔值(true / false)。您可以缩短if条件的代码,如下所示:
If CheckBox9.Checked Then
score1 +=1
第四:
grade1 = "U" & percentage1 = "0%"
如果要将两个变量设置为两个不同的值,请将其分为两行。
grade1 = "U"
percentage1 = "0%"
除此之外,您在选择案例中不需要score1 = ...
。
选择案例正在查找给定变量score1的值并选择案例,其中score1等于案例表达式。
例如,如果用户选中了具有正确答案的所有框,则选择案例将在案例5中执行代码,因为score1 = 5.
选择案例信息:
最后但并非最不重要:
您应该将复选框的逻辑写入子:
Private Sub CalculateScore()
If CheckBox1.Checked Then
score1 = score1 + 1
'Here comes the code for the other checkboxes and the select case...
End Sub
在调用MsgBoxes之前,应在Button1_Click事件中调用此子。像鲍勃提到的那样。
我希望通过这篇文章回答大部分问题。 如果我不准确或你不明白的话可以随意问。
最好的问候
SgtMeowBlank