一聚教程网:一个值得你收藏的教程网站

热门教程

ASP中If else语句多个表达式运算时注意事项

时间:2022-06-29 13:44:54 编辑:袖梨 来源:一聚教程网

我们先来看一个例子:

 代码如下 复制代码

<%
If fun1() And fun2() Then
    Response.Write("yes"&"
")
Else
    Response.Write("no"&"
")
End If

Function fun1()
    Response.Write("fun1"&"
")
    fun1 = False
End Function

Function fun2()
    Response.Write("fun2"&"
")
    fun2 = True
End Function
%>

ASP中If else语句多个表达式运算时注意事项

根据上图可知,fun1返回False时还调用了fun2(C#等语言有做了优化不会调用fun2),因而当前后表达式有关系时用上边写法程序可能会出错:

 代码如下 复制代码

<%
Dim number : number = "mzwu.com"
If IsNumeric(number) And Instr(number,".")=0 And CInt(number)>=10 Then
    Response.Write("yes")
Else
    Response.Write("no")
End If
%>

前两个表达式用于确定number为整数,但CInt还是被调用了,真让人抓狂,没办法,设计使然,改成If嵌套结构可解决:

ASP中If else语句多个表达式运算时注意事项

 代码如下 复制代码

<%
Dim number : number = "mzwu.com"
If IsNumeric(number) And Instr(number,".")=0 Then
    If CInt(number)>=10 Then
        Response.Write("yes")
    Else
        Response.Write("no")
    End If
Else
    Response.Write("no")
End If
%>

其他Or等运算符也都有同样的问题,程序代码书写时一定要注意。

热门栏目