1. 程式人生 > >ASP VBscript使用邏輯運算中的 and or

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
%>

結果為 

<hr>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("<hr>")
end function
%>

結果為

<hr>

說明  儘管 and 前面結果為false ,但and 後面都會執行 response.write("<hr>")

或 or

<%
dim a
a = 1
if a=1 or test1() = 0 then


response.Write("in")
end if 
%>
<%
function test1()
test1 = 0
response.Write("<hr>")
end function
%>

其結果也為

<hr>in

不管 前面是否為true 都會執行or後面的程式碼

結論 當有時 用到判斷 and or 時要注意 條件變數是否為空

不與其他語言 一樣 使用 && ||作為與或時 ,&&遇到false則結束,or遇到true則結束

例如

<script language="javascript">
var a,b;
a = 1;
if (a==1 || test1()>0){
alert("in");
}
function test1(){
alert("in test1");
return 1;
}
</script>

不會執行test1()

使用 && 時如果前面 a==1為false 也不會去執行test1()