欢迎光临

木子屋

标题: [ASP]If语句多个表达式运算时书写注意事项

作者: dnawo

日期: 2014-11-08 00:32 AM

分类: Web编程

内容: 我们先来看一个例子：
复制内容到剪贴板 程序代码<%
If fun1() And fun2() Then
Response.Write("yes"&"<br/>")
Else
Response.Write("no"&"<br/>")
End If
Function fun1()
Response.Write("fun1"&"<br/>")
fun1 = False
End Function
Function fun2()
Response.Write("fun2"&"<br/>")
fun2 = True
End Function
%>
根据上图可知，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嵌套结构可解决：
复制内容到剪贴板 程序代码<%
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等运算符也都有同样的问题，程序代码书写时一定要注意。

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.676 ms

返回

标题: [ASP]If语句多个表达式运算时书写注意事项

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.676 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.706 ms

返回