在VB2005中,为什么选择语句内的赋值没被自动检错识别

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:47:45
Module Module1

Sub Main()
Dim expression As String
Dim opnumber1, opnumber2 As Single
Dim opchars() As String = {"+", "-", "/", "*"}
Dim opchar, opstring1, opstring2, result As String
Dim icount, npos As Integer
Console.WriteLine("请输入一个简单表达式,如:1+2")
expression = Console.ReadLine()
expression = expression.Trim()
While expression.IndexOf(" ") >= 0
expression = expression.Remove(expression.IndexOf(" "), 1)
End While
For icount = 0 To 3
opchar = opchars(icount)
npos = expression.IndexOf(opchar)
If npos > 0 Then
Exit For
End If
Next
If npos < 0 Then
Console.WriteLine("发生错误,没有输入操作符")
Co

在select语句中所有可能的情况并没有全部判断完,差case else ,虽然代码防止了这种情况,但编辑器分析不出来,所以通常的做法是给每个变量先赋初值
opchar = ""
For icount = 0 To 3
opchar = opchars(icount)
npos = expression.IndexOf(opchar)
If npos > 0 Then
Exit For
End If
Next

result = ""
Select Case opchar
Case "+"
result = Convert.ToString(opnumber1 + opnumber2)
Case "-"
result = Convert.ToString(opnumber1 - opnumber2)
Case "*"
result = Convert.ToString(opnumber1 * opnumber2)
Case "/"
result = Convert.ToString(opnumber1 / opnumber2)
End Select