邪门的判断语句执行结果
今天编一个脚本总是调不通,我就单步调试,不断修改代码输出过程结果,最终找到问题原因是一个判断语句的问题,原代码比较繁杂,我就简化了代码,如下:
Dim i
dim j
i = testpage.Exist '这个是个判断对象是否存在的语句 ,我执行的时候获得的是false
j = allpage.link("text:=退出","index:=0").exist '我实际执行获得的是true
msgbox(i) '调试语句
msgbox(j) '调试语句
If i = false andj= true Then
msgbox("语句1")
else
msgbox("语句2")
end if
msgbox("语句3")
这段代码你们猜是执行语句几呢!
如果只看代码走读下来,就肯定是执行"语句1"
但是实际上我执行的结果却是直接执行"语句3" ---太邪门了.
希望大家帮我想想原因,和解决方案吧.
[ 本帖最后由 onlonely 于 2009-3-26 21:07 编辑 ] 按程序来看..会执行msgbox("语句1"),然后再执行msgbox("语句3")
如果语句一不执行,那你就试一下这样,
Dim i, j
i = False
j = True
If (i = False And j = True) Then
MsgBox ("语句1")
Else
MsgBox ("语句2")
End If
MsgBox ("语句3")
如果还不行..那你就拆分判断语句,
if i=false then
if j=true then
....
else
...
end if
end if
回复 2# 的帖子
你的方法我当时就试过了.得出的结论是
这样的代码
Dim i, j
i = False '直接赋值
j = True
If (i = False And j = True) Then
MsgBox ("语句1")
Else
MsgBox ("语句2")
End If
MsgBox ("语句3")
可以先执行语句1再执行语句3
但是使用判断对象方法(.exist)获得的结果就不行了.并且出问题的是判断结果是true.这个对象.
我用msgbox输出判断结果是true,但是如果用在判断语句中,整个判断语句就完全失效
目前找到一个解决方案就是使用:If (i = False And j<> false) Then这样的判断语句,就可行.-----太邪门了.
[ 本帖最后由 onlonely 于 2009-3-26 21:14 编辑 ]
页:
[1]