这是我在很长时间内的第二篇文章,不确定我们发布的次数是否有限制,但我只是想知道你是否能弄清楚为什么这段代码无效?
Dim grading As String
If score <= 5 Then
grading = "Good Job!"
ElseIf score < 15 > 5 Then
grading = "Better Luck Next Time"
End If
MessageBox.Show("Your Brain Age is" & score & "." & vbNewLine & vbNewLine & grading, "Brain Age")
End Sub
基本上发生的事情是,当我在消息框中使用变量评分时,会出现以下错误
警告1在为赋值之前使用变量'grading'。在运行时可能会导致空引用异常。
我确信有一个快速简便的解决方案。
我想在消息框中使用字符串但无法使其工作 - 检查代码
答案 0 :(得分:2)
要解决您的主要问题,问题是如果不满足以下条件:
If score <= 5 Then
grading = "Good Job!"
ElseIf score < 15 > 5 Then
grading = "Better Luck Next Time"
End If
...然后grading
变量仍然未分配,并且编译器认为您没有打算这样做。
要解决此问题,请使用适当的值初始化grading
变量:
Dim grading As String = "default value"
或者,添加else
块以确保在尝试使用之前始终将某些内容设置为grading
:
If score <= 5 Then
grading = "Good Job!"
ElseIf score < 15 > 5 Then
grading = "Better Luck Next Time"
Else
grading = "default value"
End If
此外,您可能需要修改以下内容:
ElseIf score < 15 > 5 Then
......它看起来并不正确。你的意思是这个吗?
ElseIf score < 15 AndAlso score > 5 Then