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

if case1 then xxx
elseif case2 then XXX
elseif case3 then XXX
elseif case4 then XXX
……
end if
执行时是按1、2、3、4、……的顺序检查条件,当找到第一个符合条件的情况就执行XXX并停止检查,还是每个条件都检查一遍,把所有符合条件的情况下的XXX都执行一遍?

        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 的 结果了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-11
执行时是按1、2、3、4、……的顺序检查条件,当找到第一个符合条件的情况就执行XXX并停止检查,
是这样的。
你可以用一个简单的输出语句作个直观了解。

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

....

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