ASP VBscript使用逻辑运算中的 and or

if session("postTime")<>"" and minute(NOW() - session("postTime")) < 1 then
session("postTime")=NOW()
response.write("postisfast")
response.end
end if

如果 if 前面有 session("postTime") = ""

则报错 500

如果postTime = now() 已经赋过值 则 不会报错

再例如

<%
dim a
a = 1
if a=1 and test1() = 0 then
response.Write("in")
end if 
%>
<%
function test1()
test1 = 0
end function
%>

结果为 


in

若将1改为0

<%
dim a
a = 0
if a=1 and test1() = 0 then
response.Write("in")
end if 
%>
<%
function test1()
test1 = 0
response.Write("


")
end function
%>

结果为



说明  尽管 and 前面结果为false ,但and 后面都会执行 response.write("


")

或 or

<%
dim a
a = 1
if a=1 or test1() = 0 then
response.Write("in")
end if 
%>
<%
function test1()
test1 = 0
response.Write("


")
end function
%>

其结果也为


in

不管 前面是否为true 都会执行or后面的代码

结论 当有时 用到判断 and or 时要注意 条件变量是否为空

不与其他语言 一样 使用 && ||作为与或时 ,&&遇到false则结束,or遇到true则结束

例如


不会执行test1()

使用 && 时如果前面 a==1为false 也不会去执行test1()

你可能感兴趣的:(经验)