Vb.net 如果使用或固定
任何人都可以解释为什么VisualStudio不喜欢if语句中的or 我知道我可以通过使用Vb.net 如果使用或固定,vb.net,Vb.net,任何人都可以解释为什么VisualStudio不喜欢if语句中的or 我知道我可以通过使用elseif来完成同样的工作,但我正在努力理解or不起作用的原因 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim input As String = "asdcessssf" Dim count As Integer Dim total
elseif
来完成同样的工作,但我正在努力理解or不起作用的原因
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim input As String = "asdcessssf"
Dim count As Integer
Dim totalchar As Integer
Dim final As Integer
For Each ch As Char In input
If ch = "a" Or "e" Then
count += 1
totalchar += 1
Else
totalchar += 1
End If
Next
final = (count / totalchar) * 100
MsgBox(final)
End Sub
End Class
你以错误的方式描述了情况。这应该是
ch=“a”或ch=“e”
。在布尔比较中,或
之后缺少ch=
,Or运算符总是对这两个表达式求值,这可能包括进行过程调用。OrElse运算符(Visual Basic)执行短路,这意味着如果表达式1为真,则表达式2不计算。
您可以使用OrElse获得短路行为。如“pmatyszok”所述,您在或之后缺少“ch=“e”
,我建议您也优化代码,如下所示:
For Each ch As Char In input
If ch = "a" Or ch = "e" Then count += 1
totalchar += 1
Next
或
的正确语法是如果ch=“a”或ch=“e”那么
我并不想听起来粗鲁,但我认为你有点漏掉了要点。代码失败的原因不是因为使用了或。这是因为他们没有检查ch
是否真的等于“e”“
。换言之,如果ch=“a”OrElse“e”
,这也会失败。这也一定是真的,我没有想到这一点。