vb2010中的if elseif ……是怎样执行的?

2025-02-09 01:56:46
推荐回答(2个)
回答1:

        Dim a

        a = 6
        If a > 3 Then
            Debug.Print(">3")
        ElseIf a > 5 Then
            Debug.Print(">5")
        ElseIf a > 6 Then
            Debug.Print(">6")
        ElseIf a > 9 Then
            Debug.Print(">9")
        End If


通过这段代码体验一下,当 a>3 的时候,不可能去运行  a>5 a>6 或者 a>9 的情况,因此,elseif 是 不满足第一个条件才会执行的判断。


这时候 把 a>3 换成 a<3 ,a 设为 =7 按道理说应该是 显示  a>6 其实显示的是  a>5,因此,可以判断出elseif 是按顺序执行只要满足情况就跳出判断。


再做一次尝试,将 a>5 和 a>6 的判断互换位置,这时候你得到的就是  a>6 的 结果了。

回答2:

执行时是按1、2、3、4、……的顺序检查条件,当找到第一个符合条件的情况就执行XXX并停止检查,
是这样的。
你可以用一个简单的输出语句作个直观了解。

i=10
if i>11 then msgbox i
esleif i>10 then ...

....

end if
看看究竟会输出几个对话框,就明白了。
如果这种嵌套太多,并且可以用统一的条件判断的话,直接用CASE要方便易读。