4采用 VBScript语言编写 ASP网页
4-1概述
在前面很多 HTML,到底什么时候开始运用 ASP设计网页
呢,现在,我们就从实际操作中开始学习 ASP动态网页
的设计,在每个范例实做过程中,我们将比较祥细地解
释相关的理论与应该注意的事项。
▲ ASP网页程序所使用的语言可以是 JAVA Script,也可
以是 VBScript,不过大多数人都是用 VBScript来撰写
ASP网页程序,那我们就从善入流的使用 VBScript语言
来撰写 ASP网页程序。
▲ ASP程序网页的命名不是,※,htm” 而是,※,asp”!
▲ 请注意,ASP程序是嵌入在 HTML里的,撰写 ASP程序网
页,程序语句区段一定要放在,<%” 与,%>” 之间。
ASP程序与 HTML标签一样,是不分英文大小写的。
4采用 VBScript语言编写 ASP网页
4-1概述
▲ ASP程序网页一定要“执行”,在单机上的浏览器上并
没有办法打开我们所制作完成的网页的能力,因此我们必
须通过有能力打开 ASP网页的网络服务器模拟机制
PWS( Personal Web Server)
或 IIS( Internet Information Server)
来建立我们 ASP的操作平台,也就说我们要观看我们程序
网页设计的成果就必须先启动 PWS或 IIS。
▲即使你已经安装了 PWS或 IIS而且已经启动它们了,仍然
不能以浏览器“打开”的方式(以打开旧文件的方式)来
观看程序网页,而必须使用“浏览”的方式(输入网址)
来观看程序网页。
4-2 Response 对象
Response对象:网页数据输出对象
Response对象是响应数据给浏览器,包括网页服务器所
以要响应给用户的各项信息,举凡与数据输出相关的都
得靠 Response对象的“方法”。
4-2-1 Response.write方法负责将字符串信息输出至
客户端,也可与 HTML标示混合使用,标准的 HTML标签数
据可直接书写于 ASP程序中,这些单纯的 HTML标签数据
在 ASP程序执行后即会原原本本的直接传送给浏览者的
浏览器进行解释的动作,但是,如果是变动性的数据,
如日期、时间等,就必须使用 Response对象的,write”
方法来编写,如下例:
<html><head><title>欢迎您加入 ASP世界,....</title></head>
<body>
<% '4-1-1.asp程序
sub GreetingMessage()
Dim strGreeting
if hour(Now)<12 then
strGreeting="Good Morning! This is a VBScript Sample."
Elseif hour(Now)>17 Then
strGreeting="Good Evening! This is a VBScript Sample."
Else
strGreeting="Hello! This is a VBScript Sample."
End if %>
<%Response.write("今天是,"&Now())%><P>
<% Response.Write(STRGREETING)
End Sub
call GreetingMessage( ) %> <P><Script
Language="Javascript">
var MyName="LuKang“
<!-- window.document.write("Hello! This is a JavaScript Sample.")
window.document.write(MyName)
//-->
</Script> </body> </html>
要点
在上图中,我们可以很清楚地看到 ASP网页执行后的画
面,我们利用 Response对象的,write” 方法输出了一
个日期数据,这个日期是哪来的呢?这个日期是我们调
用了,date” 这个函数所产生的。而这个,date” 函数
则是 VBScript所内建的一个日期函数,调用,date” 函
数会帮我们取回机器目前的日期数据。
▲如果我们喜欢将不会变动的网页数据也利用 Response
对象的,write” 方法来编写,可不可以呢?当然可以!
但是,这样就变成编写一支完整的 ASP程序了,所以全
部的语句都必须放在,<%” 与,%>” 之中,同时,所有
的 HTML标签都必须写在双引号“””之中:
<%
<html>
<head>
<title>ex401</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<td><font color="#00FF00">请输入成绩 </font></td>
<td><input type="text"size="15"name="score"></td>
</tr>
<tr> <td colspan=2>
<input type=reset value="评判等级 "name="Reset">
</td>
</tr>
<font color="#FFFFFF"></font></tr>
<tr>
<td colspan=2><font color="#0000FF"
size="5" face="方正姚体,">你的成绩是 </font><font
color="red"><%= msg %></font></td>
</tr>
</table>
<font color="#FFFFFF"></font>
</form>
</body>
</html>
Script(脚本 )语言术语的解释
通过讨论,可见 ASP并没丢掉 HTML,而在需要控制处加入,
特殊的脚本语句,,其中可是 VBScript,也可是 JavaScript。
Script是一种介于 HTML,Java,VB,C++等高级编程语言
间的一种特殊语言,是由一组可以在 WEB服务器或客户端
浏览器运行的命令组合而成。其接近高级语言,却又不具
备编程语言复杂、严谨的语法规则。同时应注意到,ASP
既不是一种语言、也不是一种开发工具,而是一种内含于
IIS/PWS之中,可以集成 Script语言到 HTML文档的服务器
端的脚本语言环境。我们可以根据自己的情况选择比较熟
悉的脚本 语言来开发运用程序,也可以两种混合编程。
多数人将 VBScript作为首选编程语言,想具体知道请到以
下网站,http://www,vbscript,com
4-2-2 Response,Redirect方法
Response.Redirect方法可转向其他网页或网址,这个
方法也就所谓的:“自动链接”,而此方法只可用在尚
未有任何数据输出至浏览器之前才可调用。尚未有任何
数据输出至浏览器之前才可调用?这是什么意思呢?就
是在程序开始端符号,,%” 之前都不能有任何数据啦!
如下例:
1.载入主网页后,自动转接至与主网页同一目录中的
ch01.htm网页。
2.载入主网页后,自动转接至主网页上一层目录中的
ch01.asp网页。
3.载入主网页后,自动转接至与另一网址中的网页。
<%
score=request("score")
if score>60 then
msg="及格 " '分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 " '分数小于 60则将 msg变量内容设为 "不及格
"
end if
%>
<html>
<head>
<title>ex402</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr><td><font color="#FF0000">请输入成绩 </font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="评判等级 "></td>
</tr>
</tr><tr>
<td colspan=2><font color="#0000FF" size="5" face="方正姚
体,">你的成绩是 </font><font color="red"><%= msg
%></font><font color="red"><%= msg %></font></td>
</tr></table>
</form>
</body>
</html>
4-2-3 Response,End方法
Response,End方法:结束数据输出,使 PWS/IIS不再解释后续的
HTML标示及 ASP程序,一般来说 End方法都是配合判断语句来使用
(例如 If-Else)。例如:我们的网站在下午 6点钟至午夜 12点不
开放,则我们就可如下例来撰写:
在此例中我们先利用了,Time” 函数读取系统时间来比较是否超
过了下午六点钟,如果超过就输出显示“明天请早!”,同时不
再解释后续的 HTML标记及 ASP程序;如果系统时间尚未超过下午
六点钟,则继续解释后续的 HTML标记,建立一个台头为“本网正
常开放”及“欢迎光临”的网页。
提示
,date” 函数可取得目前机器系统日期数据。
,time” 函数可取得目前机器系统日期数据。
,now” 函数可取得目前机器系统日期时间数据。
在 ASP程序中要表达日期或时间,必须以 #字符号前后包括起来。
4-3 Request对象
Request对象与 Response.对象是一对的,为何如此说呢,因为
Response.对象是响应数据给浏览器,而 Request对象是读取浏览
器的数据,通常包含了客户端的相关信息,如浏览器的种类、表
头信息、表单参数及 Cookies等,Request对象提供下列数据集合。
Request,Form:取得客户端用表单所传送的数据。
Request,Query string:取得附带在网址后的参数。
Request,Cookies:取得客户端浏览器的 Cookies数据。
Request,Sever Variables:取得网页服务端的环境变量参数。
本单元将针对 Request,Form(“变量名称”)作介绍,其他部
分将在 Cookies对象及 Server对象单元中介绍。
以简单访问者留言为例制作一表单,这不是真的留言板,我们并
没有将数据纪录到文件或数据库中!:( message,htm)
1.<form>标签的 action(动作 )属性值设置为,go.asp” 代表我们
按下“传送”按钮后,将由服务端的,go.asp” 接收由此网页所
传出的网页数据并加以处理。
2.<form>标签的 method(传输方式)属性值设置为,post” 代表我
们按下“传送”按钮后,浏览器将不会立即主动的将数据传给服务
器,而会等候服务端来读取数据并加以处理。另一种 method(传输
方式)属性值设置为,get” 代表我们按下“传送”按钮后,浏览
器将会立即主动的将数据传给服务器,使用这方式不太好,因为按
下“传送”按钮后,表单中的数据将会附在网址后传送到服务器。
3.文字输入栏位 <input>:,type” 属性为输入栏位的类型,其文
字栏位设置值有三种,分别为:” Text” 文字输入栏(只输入单行
文字)、,Password” 保密输入栏(单行文字输入,输入的文字以
星字号代替)、,Textarea” 文字输入区块(可输入多行文字)。
4.文字输入栏位 <input>:,size” 属性为文字输入栏位的宽度。
5.文字输入栏位 <input>:“name” 属性为数据输出的识别名称。
6,文字输入栏位 <input>:“cols” 属性与,rows” 属性分别为设
置,Textarea” 文字输入区块的列数及行数。
7.若将,type” 属性值设为,submit”,则代表此一栏位为一按钮
( Button),按下此按钮则可将表单中的数据送出,其,value” 属
性值适用来设置按钮的标题文字( Caption)。
按下传送钮后会启动 Server端的 ASP程序,即原始代码中的
action=” go,asp”,那 go,asp程序网页是如何动作的呢?我们现
在就来分析一下 go,asp程序代码:
1.利用 request对象取回 message,htm网页中数据输出识
别名称为,name” 栏位数据,并将其数据放置到,name”
的变量中。
2.利用 request对象取回 message,htm网页中数据输出识
别名称为,email” 的栏位数据,并将其数据放置到
,email” 的变量中。
3.利用 request对象取回 message,tm网页中数据输出识别
名称为,memo” 的栏位数据,并将其数据放置到,memo”
的变量中。
提示
<%=显示内容 %>是 <%response” 显示内容,%>的简便写法!
若单纯只有取得表单的变量名称,则 Request,Form(“变量名
称”),亦可写成 Request(变量名称”)。
4-4 IF判断语句
电子计算机是很笨的,通常程序得执行是依照我们设计的程序,一
条一条依序执行下去,直到没有语句可执行为止,一点点变通的能
力都没有,真是缺乏乐趣,为了让我们的程序网页能与浏览者产生
互动,所以我们必须使用一些程序转弯的语句,付予我们程序网页
生命,让它具有智慧懂得判断,让它知道在什么情况下该做些什么
事!
在前面单元里中我们一直使用 If-Then来做一个转弯的语句判断,
IF语句是具有判断力的语句(也是最简单常用的判断语句),它会
依照我们所定的条件执行相对的程序语句,当我们定的条件成立后
(条件值为 True),才会执行 Then之后的语句,反之,当我们定
的条件是不成立的(条件值为 False),则 Then之后的语句将不会
被执行。
之前我们已经谈过了表单制作、利用 Response,Write方法 输出网
页数据与利用 Request,Form方法接收表单所传送过来的数据,
现在我们就利用这些相关的知识配合判断语句来做一些综合的演练
学习。
4-4-1 If-Then语句
If-Then是我们最常用的判断语句,它的通用格式是:
If-Then判断语句格式
If条件式 Then
程序语句
End if
它的意义是:如果“条件式”成立(条件值为 True),就执行 Then
之后的“程序语句”,不然的话,就跳过 Then之后的“程序语句”,
从,End if” 之后继续执行下面的程序语句。
在程序网页中设计一个表单,画面如下图,让用户输入成绩数据,
按下评等按钮后,若分数大于 60分则在网页中显示“及格”:
在网页程序代码中,请你注意看 <form>标签!在标签中我们并没有
加上,action=” 处理程序””的属性,这样就是代表:当我们输
入分数并按下“评等”按钮后,表单的数据将直接送交给我们目前
浏览中的程序网页自己进行判断处理,而不再交由其他程序处理。
<%
score=request("score")
if score>60 then
msg="及格 "分数大于 60则将 msg变量内容设为 "及格 "
end if
%>
<html>
<head>
<title>ex401</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1" height="235" width="383">
<tr>
<td height="50" width="186"><b><font color="#FF00FF" face="宋体
" size="5">请输入成绩 </font></b></td>
<td height="50" width="181"><input type="text" size="15"
name="score"></td>
</tr>
<tr>
<td colspan=2 height="53" width="373">
<input type=reset value="评判等级 "
name="Reset"> <font color="#FF0000" face="隶书 "
size="6">
<span style="background-color,#FFFF00">期中成绩表
</span></font>
</td></tr>
<font color="#FFFFFF"></font>
<tr><td colspan=2 height="114" width="373"><font
color="#0000FF" face="方正姚体," size="6">你的成绩是
</font><font color="red"><%= msg %></font></td>
</tr>
</table>
<font color="#FFFFFF"></font>
</form>
</body>
</html>
如果表单送交的分数大于 60分则会正常显示“及
格”,但是若小于 60分呢?小于 60分那就代表我
们 IF判断语句的条件不成立,所以 Then之后的语
句就不会被执行,然后从,End If” 之后继续执
行下面的程序语句,可是,End If” 之后我们又
没有程序语句可执行呢!那就造成成绩评等结果
不见了。
原始代码中的,>, 符号为一个关系运算符“大
于”,它用来比较变量 score和数值 60的大小,如
果变量 score大于 60则返回 True值,而在 True之后
的语句或语句区块将会被执行,反之,在 True之
后的语句或语句区块就不会被执行。关于运算符
的分类,以后讨论。
4-4-2 If-Then-Else 语句
If-Then-Else 语句的意思是说:“如果 ---就做 -
--否则就 ------。”,也就是当比较式成立时做
某事,比较式不成立时就做另一件事。
执行 If-Then-Else 语句的格式如下:
If-Then-Else 判断语句格式
If 条件式 Then
程序语句
Else
程序语句
End lf
例如:当成绩高于 60分时在网页中显出一个及格
的评等信息,反之则显示出不及格的评等信息:
利用 If-Then-Else 判断语句改进上一个范例程序,
让用户输入成绩数据,按下评等按钮后,若分数
大于 60分则在网页中显示“及格”,若分数小于
60分则在网页中显示“不及格”:
虽然我们程序已经可依分数是否大于 60而做出成
绩及格或不及格的评等,但是第一次进入程序网
页就会出现一个“不及格”的信息,我都还没输
入分数耶!没办法,之前说过电脑是很笨的,一
进入程序网页它就会开始先判断,我们没有输入
分数数据它就自己把成绩评等当成不及格了。没
关系继续往下讨论。
<%
score=request("score")
if score=empty then
msg="尚未输入分数 "'成绩尚未输入则将 msg变量内容设为 "尚未输
入分数 "
elseif score>60 then
msg="及格 "'分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 "'分数小于 60则将 msg变量内容设为 "不及格 "
end if
%>
<html>
<head>
<title>ex403</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font color="#FF0000" face="华文彩云,">请输入成绩
</font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2>
<input type=submit value="评判等级 " name="Submit">
</td>
</tr>
</tr>
<tr>
<td colspan=2><font color="#0000FF" size="5" face="华文隶书 ">你
的成绩是 </font><font color="red"><% = msg %></font></td>
</tr>
</table>
</form>
</body>
</html>
4-4-3 Else lf 逐条过滤条件语句
当程序中设置多条过滤条件时,我们可以采逐条过滤的方式来筛选
答案,例如,Else lf判断语句区块格式
If 条件式 1 Then
语句区块 1
Else lf条件式 2
语句区块 2
Else lf 条件式 n Then
语句区块 n
Else 语句区块 n +1 End lf
改写我们之前的实作学习,ex402” 例题,将程序语句改为使用
Else lf逐条过滤条件语句,第一次进入程序网页时评等信息为
“尚未输入分数”,输入成绩数据并按下评等按钮后,若分数大于
60分则在网页中显示“及格”,若分数小于 60分则在网页中显示
“不及格”:
提示 ;If score=empty:检验变量 score内是否含有数据,empty就是
没有任何数据,是无值,完全没有任何东西的意思。
4-4-4 嵌套 If语句
什么叫做嵌套 If语句?简单地说,就是 If语句中还有 If语句啦!因
为 If语句本来就是一个语句,所以它也可以成为另一个 If语句的语
句,而 If中又有其他 If的这种层层相叠语句,我们就称之嵌套 If语
句,例如,If-Then-Else 判断语句区块格式
If 条件式 A Then
If 条件式 B Then
语句区块 B-1;
Else
语句区块 B-2
End lf
Else
语句区块 A;
End lf
实做学习(范例光盘 ex404.asp) s
改写我们之前的实作学习,ex403” 例题,将程序语句由 Else lf逐
条过滤条件语句改为使用嵌套 If语句。
程序网页原始代码如下:
<%
score=request("score")
if score<>empty then
if score>60 then
msg="及格 " '分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 " '分数小于 60则将 msg变量内容设为 "不及格 "
end if
else
msg="尚未输入分数 " '成绩尚未输入则将 msg变量内容设为 "尚未
输入分数 "
end if
%>
<html>
<head>
<title>ex404</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font color="#FF0000">请输入成绩 </font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="评判等级 "></td>
</tr>
</tr>
<tr>
<td colspan=2>你的成绩是 <font color="red"><%= msg
%></font></td>
</tr>
</table>
</form>
</body>
</html>
4-5 多路径选择的 Select Case语句
使用过了 If-Then-Else语句,我们得知 If-Then-Else语句
在条件成立后会执行 Then之后的语句,若条件不成立则会
执行 Else语句,只能二选一,如果程序有很多状况,需要
建立多条选择路径,则我们可以使用 Else If逐条过滤条
件语句,但是使用 Else If逐条过滤条件语句来撰写程序,
不但眼睛都看花了,而且程序又拖的很长,此时我们就可
以利用具有多路径选择的 Select Case语句来撰写程序。
Select Case语句可以根据变量中的数据数值来决定程序
的执行流程,其变量的类型可以是字符类型、整数类型等,
利用 Select Case语句来撰写程序不但执行速度快,而且
程序也浅显易懂多了,其格式如下:
Select Case判断语句区块格式
Select Case评估值
Case条件值 1
语句区块 1
Case条件值 2
语句区块 2
Case条件值 n
语句区块 n
Case Else
语句区块 n+1
End Select
上面格式意义是:当条件值符合条件值 1时就执行程序区块 1,条件值符合条件值
2时就执行程序区块 2,条件值符合条件值 n时,就执行程序区块 n,如果任何条件
都不符合则执行程序区块 n+1。
一直使用单行文字框的表单组件,现在我们换单选式按钮组件!设计一表单程序
网页,由浏览者选择它喜欢的网页背景颜色,当颜色选定并按下“确定”按钮后
就将网页底色变成浏览者所选定的颜色:
提示,上例中,你有没有发现少了什么?没错,就是 Case Else!这样撰写并没有
问题,只要判别所有的条件值都不符合后,就不会执行任何语句,而直接跳至
End Select 的下一个语句。
<%
color=request("color")
select case color
case "y" '选取黄色
color="yellow"
case "g" '选取绿色
color="green"
case "b" '选取蓝色
color="blue"
end select
%>
<html>
<head>
<title>ex405</title>
</head>
<body bgcolor="<%=color%>">
<font color="#FFFFCC">请选择你喜欢的网页背景颜色 </font>
<p>
<form>
<input type="radio" checked name="color"
value="y">
<font color="#FFFF00">黄色 </font>
<input type="radio" name="color" value="g">
<font color="#00FF33">绿色 </font>
<input type="radio" name="color" value="b">
<font color="#3333FF">蓝色 </font>
<input type="submit" value="确定 ">
</form>
</body>
</html>
学习做个季节选择的表格,Select Case语句的条件值,并不限制于
单一的常数,还可以是逐一列出条件值得方式,例如:让浏览者输
入月份,按下确定确定按钮后,告诉他该月份是哪一个季节:
4-6 重复执行的循环语句
所谓循环( Loop)就是能让某一段的程序能够重复执行许多次的流
程控制语句,在本章节中,将介绍两个比较常用来控制程序的循环
语句,它们是 For-Next及 While-Wend。
4-6-1 计次执行的 For-Next语句
当我们知道循环必须执行的次数时,For-Next语句就是最好的循环
语句。要使用 For-Next语句就必须使用一个控制变量来决定 For-
Next语句要执行的次数,其格式如下:
For-Next循环语句区块格式
For计次变量,=初值 To终值
要重复执行的语句区块
Next
由上面格式中可得知,For-Next语句可以帮我们建立一个循环,我
们只要决定上下限就可以决定循环重复的次数,例如:
For X=1 To 10 Y=Y+X Next
<%
moon=request("moon")
select case moon
case 2,3,4 '逐一列出条件值
msg="春季 "
case 5,6,7
msg="夏季 "
case 8,9,10
msg="秋季 "
case 1,11,12
msg="冬季 "
end select
%>
<html>
<head>
<title>ex406</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font face="华文新魏 " size="6" color="#0000FF">请输入
现在的月份 </font></td>
<td><input type="text" size="15" name="moon"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="确定 "></td>
</tr>
</tr>
<tr>
<td colspan=2><font color="#FF0000" size="6" face="
华文隶书 ">现在是 </font><font color="red"><%= msg
%></font></td>
</tr>
</table>
</form>
</body>
</html>
在上例中,最重要的一个地方就是变量 X,它在循环中是扮演一个
计数器的角色,而计数范围从 1到 10,所以在,For---Next” 中的
语句区块将会被执行 10次,因此我们可对 For-Next语句分析如下。
1.第一次执行循环时,变量 X被指定为起始值。
2.执行循环前,变量 X都会先进行是否超过终止值的检验,若超过,
则结束循环,否则就继续执行循环内的语句。
3.执行过循环后,变量 X的值将会加上步进值( 1)。
For-Next语句其实还有一个步进值的设置,如果我们没有特别指定
步进值的大小,那步进值的大小就默认为( 1),也就是说循环便
会在执行过循环后自动加( 1)。
For-Next循环语句区块格式
For计次变量 =初值 TO终值 Step步进值
重复执行的语句区块
Next
例如,For X=1 To Step 2
Y=Y+X
Next
请问你:上例 For-Next循环语句结束后,变量 Y等于多少?绝对不
是 55喔。
在我们这个例子中变量 X被指定为起始值 1,也就说变量 X一开始是 1,
可是每执行一次循环后变量 X并不是加 1,而是加 2,所以
Y=1+3+5+7+9,答案应该是 25。
For-Next语句不仅可以是递增循环,也可以是递减循环,其格式如
下:
For-Next递减循环语句区块格式
For计次变量 =初值 TO终值 Step - 步进值
语句区块
Next
也就是说递减循环 For-Next语句的起始值必须大于终止值,而判断
是否脱离循环的语句就变成:计次变量值 <终止值,同时,步进值
一定要设置,并且步进值必须是负数。例如:
For X=10 To 1 Step -1
Y=Y+X
Next
<%
num=request("num")
if num<>empty then
ans=1
for i=1 to num
ans=ans*i
next
end if
%>
<html>
<head>
<title>ex407</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td>请输入 N值 </td>
<td><input type="text" size="15" name="num"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="确定 "></td>
</tr>
</tr>
<tr>
<td colspan=2>1乘到 N的答案是 <font color="red"><%= ans
%></font></td>
</tr>
</table>
</form>
</body>
</html>
让我们来设计一个由自己指定 N值,然后计算 1× 2× ------× ( N+1)
× N,并将计算结果显示于网页中的程序。
首先我们将变量 Ans的值设为 1,所以,Ans=Ans*1*2× ---*N-1*N”
等于,Ans=1*2*------*N-1*N”,因此,Ans=1*2*------*N-1*N”
就等于,Ans=1”,,Ans=Ans=*2”,, Ans=Ans*3” ------
“Ans:=Ans*N” 连续运算的结果。所以使用 For-Next语句将是最
佳的选择。
试撰写一 ASP语句,使网页中出现下图的画面。
4-6-2 While-Wend 循环语句区块格式
While条件式
要重复执行的语句区块
Wend
While-Wend 循环语句是由保留字 While开始,在其后是一个条件式,
而这个条件式则是一个布尔值表达式,如果这个条件成立(布尔值
运算结果为 True),那么在 While-Wend 循环语句里(语句区块)
的程序代码就会执行至结尾,然后再判断条件式,当这个条件式不
再成立时,While-Wend 循环语句就会停止执行。现在我们来比较
一下 For-Next与 While-Wend语句:计算 1加至 10:
For-Next写法
For X=1 To 10
Y=Y+X
Next
While-When写法
X=1 While X<=10
Y=Y+X
X=X+1
Wend
看完这两个语句的比较,你是不是发现:同样的功能,但是 While-
wend语句似乎麻烦多了,不过,若不知道循环会执行几次,还是
While-wend语句比较适合,如下例:
实做学习( ex410.asp)
请设计一 ASP程序,计算 6561是 3的几次方,度将答案显示于网页中。
在以上程序中的原始代码中的,&” 符号是一个数据串接符号,它
会将该符号前后的数据连接在一起,例如:“我是” &“book”,
则串接后的字符串数据就变成:“我是 book” 。
4-1概述
在前面很多 HTML,到底什么时候开始运用 ASP设计网页
呢,现在,我们就从实际操作中开始学习 ASP动态网页
的设计,在每个范例实做过程中,我们将比较祥细地解
释相关的理论与应该注意的事项。
▲ ASP网页程序所使用的语言可以是 JAVA Script,也可
以是 VBScript,不过大多数人都是用 VBScript来撰写
ASP网页程序,那我们就从善入流的使用 VBScript语言
来撰写 ASP网页程序。
▲ ASP程序网页的命名不是,※,htm” 而是,※,asp”!
▲ 请注意,ASP程序是嵌入在 HTML里的,撰写 ASP程序网
页,程序语句区段一定要放在,<%” 与,%>” 之间。
ASP程序与 HTML标签一样,是不分英文大小写的。
4采用 VBScript语言编写 ASP网页
4-1概述
▲ ASP程序网页一定要“执行”,在单机上的浏览器上并
没有办法打开我们所制作完成的网页的能力,因此我们必
须通过有能力打开 ASP网页的网络服务器模拟机制
PWS( Personal Web Server)
或 IIS( Internet Information Server)
来建立我们 ASP的操作平台,也就说我们要观看我们程序
网页设计的成果就必须先启动 PWS或 IIS。
▲即使你已经安装了 PWS或 IIS而且已经启动它们了,仍然
不能以浏览器“打开”的方式(以打开旧文件的方式)来
观看程序网页,而必须使用“浏览”的方式(输入网址)
来观看程序网页。
4-2 Response 对象
Response对象:网页数据输出对象
Response对象是响应数据给浏览器,包括网页服务器所
以要响应给用户的各项信息,举凡与数据输出相关的都
得靠 Response对象的“方法”。
4-2-1 Response.write方法负责将字符串信息输出至
客户端,也可与 HTML标示混合使用,标准的 HTML标签数
据可直接书写于 ASP程序中,这些单纯的 HTML标签数据
在 ASP程序执行后即会原原本本的直接传送给浏览者的
浏览器进行解释的动作,但是,如果是变动性的数据,
如日期、时间等,就必须使用 Response对象的,write”
方法来编写,如下例:
<html><head><title>欢迎您加入 ASP世界,....</title></head>
<body>
<% '4-1-1.asp程序
sub GreetingMessage()
Dim strGreeting
if hour(Now)<12 then
strGreeting="Good Morning! This is a VBScript Sample."
Elseif hour(Now)>17 Then
strGreeting="Good Evening! This is a VBScript Sample."
Else
strGreeting="Hello! This is a VBScript Sample."
End if %>
<%Response.write("今天是,"&Now())%><P>
<% Response.Write(STRGREETING)
End Sub
call GreetingMessage( ) %> <P><Script
Language="Javascript">
var MyName="LuKang“
<!-- window.document.write("Hello! This is a JavaScript Sample.")
window.document.write(MyName)
//-->
</Script> </body> </html>
要点
在上图中,我们可以很清楚地看到 ASP网页执行后的画
面,我们利用 Response对象的,write” 方法输出了一
个日期数据,这个日期是哪来的呢?这个日期是我们调
用了,date” 这个函数所产生的。而这个,date” 函数
则是 VBScript所内建的一个日期函数,调用,date” 函
数会帮我们取回机器目前的日期数据。
▲如果我们喜欢将不会变动的网页数据也利用 Response
对象的,write” 方法来编写,可不可以呢?当然可以!
但是,这样就变成编写一支完整的 ASP程序了,所以全
部的语句都必须放在,<%” 与,%>” 之中,同时,所有
的 HTML标签都必须写在双引号“””之中:
<%
<html>
<head>
<title>ex401</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<td><font color="#00FF00">请输入成绩 </font></td>
<td><input type="text"size="15"name="score"></td>
</tr>
<tr> <td colspan=2>
<input type=reset value="评判等级 "name="Reset">
</td>
</tr>
<font color="#FFFFFF"></font></tr>
<tr>
<td colspan=2><font color="#0000FF"
size="5" face="方正姚体,">你的成绩是 </font><font
color="red"><%= msg %></font></td>
</tr>
</table>
<font color="#FFFFFF"></font>
</form>
</body>
</html>
Script(脚本 )语言术语的解释
通过讨论,可见 ASP并没丢掉 HTML,而在需要控制处加入,
特殊的脚本语句,,其中可是 VBScript,也可是 JavaScript。
Script是一种介于 HTML,Java,VB,C++等高级编程语言
间的一种特殊语言,是由一组可以在 WEB服务器或客户端
浏览器运行的命令组合而成。其接近高级语言,却又不具
备编程语言复杂、严谨的语法规则。同时应注意到,ASP
既不是一种语言、也不是一种开发工具,而是一种内含于
IIS/PWS之中,可以集成 Script语言到 HTML文档的服务器
端的脚本语言环境。我们可以根据自己的情况选择比较熟
悉的脚本 语言来开发运用程序,也可以两种混合编程。
多数人将 VBScript作为首选编程语言,想具体知道请到以
下网站,http://www,vbscript,com
4-2-2 Response,Redirect方法
Response.Redirect方法可转向其他网页或网址,这个
方法也就所谓的:“自动链接”,而此方法只可用在尚
未有任何数据输出至浏览器之前才可调用。尚未有任何
数据输出至浏览器之前才可调用?这是什么意思呢?就
是在程序开始端符号,,%” 之前都不能有任何数据啦!
如下例:
1.载入主网页后,自动转接至与主网页同一目录中的
ch01.htm网页。
2.载入主网页后,自动转接至主网页上一层目录中的
ch01.asp网页。
3.载入主网页后,自动转接至与另一网址中的网页。
<%
score=request("score")
if score>60 then
msg="及格 " '分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 " '分数小于 60则将 msg变量内容设为 "不及格
"
end if
%>
<html>
<head>
<title>ex402</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr><td><font color="#FF0000">请输入成绩 </font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="评判等级 "></td>
</tr>
</tr><tr>
<td colspan=2><font color="#0000FF" size="5" face="方正姚
体,">你的成绩是 </font><font color="red"><%= msg
%></font><font color="red"><%= msg %></font></td>
</tr></table>
</form>
</body>
</html>
4-2-3 Response,End方法
Response,End方法:结束数据输出,使 PWS/IIS不再解释后续的
HTML标示及 ASP程序,一般来说 End方法都是配合判断语句来使用
(例如 If-Else)。例如:我们的网站在下午 6点钟至午夜 12点不
开放,则我们就可如下例来撰写:
在此例中我们先利用了,Time” 函数读取系统时间来比较是否超
过了下午六点钟,如果超过就输出显示“明天请早!”,同时不
再解释后续的 HTML标记及 ASP程序;如果系统时间尚未超过下午
六点钟,则继续解释后续的 HTML标记,建立一个台头为“本网正
常开放”及“欢迎光临”的网页。
提示
,date” 函数可取得目前机器系统日期数据。
,time” 函数可取得目前机器系统日期数据。
,now” 函数可取得目前机器系统日期时间数据。
在 ASP程序中要表达日期或时间,必须以 #字符号前后包括起来。
4-3 Request对象
Request对象与 Response.对象是一对的,为何如此说呢,因为
Response.对象是响应数据给浏览器,而 Request对象是读取浏览
器的数据,通常包含了客户端的相关信息,如浏览器的种类、表
头信息、表单参数及 Cookies等,Request对象提供下列数据集合。
Request,Form:取得客户端用表单所传送的数据。
Request,Query string:取得附带在网址后的参数。
Request,Cookies:取得客户端浏览器的 Cookies数据。
Request,Sever Variables:取得网页服务端的环境变量参数。
本单元将针对 Request,Form(“变量名称”)作介绍,其他部
分将在 Cookies对象及 Server对象单元中介绍。
以简单访问者留言为例制作一表单,这不是真的留言板,我们并
没有将数据纪录到文件或数据库中!:( message,htm)
1.<form>标签的 action(动作 )属性值设置为,go.asp” 代表我们
按下“传送”按钮后,将由服务端的,go.asp” 接收由此网页所
传出的网页数据并加以处理。
2.<form>标签的 method(传输方式)属性值设置为,post” 代表我
们按下“传送”按钮后,浏览器将不会立即主动的将数据传给服务
器,而会等候服务端来读取数据并加以处理。另一种 method(传输
方式)属性值设置为,get” 代表我们按下“传送”按钮后,浏览
器将会立即主动的将数据传给服务器,使用这方式不太好,因为按
下“传送”按钮后,表单中的数据将会附在网址后传送到服务器。
3.文字输入栏位 <input>:,type” 属性为输入栏位的类型,其文
字栏位设置值有三种,分别为:” Text” 文字输入栏(只输入单行
文字)、,Password” 保密输入栏(单行文字输入,输入的文字以
星字号代替)、,Textarea” 文字输入区块(可输入多行文字)。
4.文字输入栏位 <input>:,size” 属性为文字输入栏位的宽度。
5.文字输入栏位 <input>:“name” 属性为数据输出的识别名称。
6,文字输入栏位 <input>:“cols” 属性与,rows” 属性分别为设
置,Textarea” 文字输入区块的列数及行数。
7.若将,type” 属性值设为,submit”,则代表此一栏位为一按钮
( Button),按下此按钮则可将表单中的数据送出,其,value” 属
性值适用来设置按钮的标题文字( Caption)。
按下传送钮后会启动 Server端的 ASP程序,即原始代码中的
action=” go,asp”,那 go,asp程序网页是如何动作的呢?我们现
在就来分析一下 go,asp程序代码:
1.利用 request对象取回 message,htm网页中数据输出识
别名称为,name” 栏位数据,并将其数据放置到,name”
的变量中。
2.利用 request对象取回 message,htm网页中数据输出识
别名称为,email” 的栏位数据,并将其数据放置到
,email” 的变量中。
3.利用 request对象取回 message,tm网页中数据输出识别
名称为,memo” 的栏位数据,并将其数据放置到,memo”
的变量中。
提示
<%=显示内容 %>是 <%response” 显示内容,%>的简便写法!
若单纯只有取得表单的变量名称,则 Request,Form(“变量名
称”),亦可写成 Request(变量名称”)。
4-4 IF判断语句
电子计算机是很笨的,通常程序得执行是依照我们设计的程序,一
条一条依序执行下去,直到没有语句可执行为止,一点点变通的能
力都没有,真是缺乏乐趣,为了让我们的程序网页能与浏览者产生
互动,所以我们必须使用一些程序转弯的语句,付予我们程序网页
生命,让它具有智慧懂得判断,让它知道在什么情况下该做些什么
事!
在前面单元里中我们一直使用 If-Then来做一个转弯的语句判断,
IF语句是具有判断力的语句(也是最简单常用的判断语句),它会
依照我们所定的条件执行相对的程序语句,当我们定的条件成立后
(条件值为 True),才会执行 Then之后的语句,反之,当我们定
的条件是不成立的(条件值为 False),则 Then之后的语句将不会
被执行。
之前我们已经谈过了表单制作、利用 Response,Write方法 输出网
页数据与利用 Request,Form方法接收表单所传送过来的数据,
现在我们就利用这些相关的知识配合判断语句来做一些综合的演练
学习。
4-4-1 If-Then语句
If-Then是我们最常用的判断语句,它的通用格式是:
If-Then判断语句格式
If条件式 Then
程序语句
End if
它的意义是:如果“条件式”成立(条件值为 True),就执行 Then
之后的“程序语句”,不然的话,就跳过 Then之后的“程序语句”,
从,End if” 之后继续执行下面的程序语句。
在程序网页中设计一个表单,画面如下图,让用户输入成绩数据,
按下评等按钮后,若分数大于 60分则在网页中显示“及格”:
在网页程序代码中,请你注意看 <form>标签!在标签中我们并没有
加上,action=” 处理程序””的属性,这样就是代表:当我们输
入分数并按下“评等”按钮后,表单的数据将直接送交给我们目前
浏览中的程序网页自己进行判断处理,而不再交由其他程序处理。
<%
score=request("score")
if score>60 then
msg="及格 "分数大于 60则将 msg变量内容设为 "及格 "
end if
%>
<html>
<head>
<title>ex401</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1" height="235" width="383">
<tr>
<td height="50" width="186"><b><font color="#FF00FF" face="宋体
" size="5">请输入成绩 </font></b></td>
<td height="50" width="181"><input type="text" size="15"
name="score"></td>
</tr>
<tr>
<td colspan=2 height="53" width="373">
<input type=reset value="评判等级 "
name="Reset"> <font color="#FF0000" face="隶书 "
size="6">
<span style="background-color,#FFFF00">期中成绩表
</span></font>
</td></tr>
<font color="#FFFFFF"></font>
<tr><td colspan=2 height="114" width="373"><font
color="#0000FF" face="方正姚体," size="6">你的成绩是
</font><font color="red"><%= msg %></font></td>
</tr>
</table>
<font color="#FFFFFF"></font>
</form>
</body>
</html>
如果表单送交的分数大于 60分则会正常显示“及
格”,但是若小于 60分呢?小于 60分那就代表我
们 IF判断语句的条件不成立,所以 Then之后的语
句就不会被执行,然后从,End If” 之后继续执
行下面的程序语句,可是,End If” 之后我们又
没有程序语句可执行呢!那就造成成绩评等结果
不见了。
原始代码中的,>, 符号为一个关系运算符“大
于”,它用来比较变量 score和数值 60的大小,如
果变量 score大于 60则返回 True值,而在 True之后
的语句或语句区块将会被执行,反之,在 True之
后的语句或语句区块就不会被执行。关于运算符
的分类,以后讨论。
4-4-2 If-Then-Else 语句
If-Then-Else 语句的意思是说:“如果 ---就做 -
--否则就 ------。”,也就是当比较式成立时做
某事,比较式不成立时就做另一件事。
执行 If-Then-Else 语句的格式如下:
If-Then-Else 判断语句格式
If 条件式 Then
程序语句
Else
程序语句
End lf
例如:当成绩高于 60分时在网页中显出一个及格
的评等信息,反之则显示出不及格的评等信息:
利用 If-Then-Else 判断语句改进上一个范例程序,
让用户输入成绩数据,按下评等按钮后,若分数
大于 60分则在网页中显示“及格”,若分数小于
60分则在网页中显示“不及格”:
虽然我们程序已经可依分数是否大于 60而做出成
绩及格或不及格的评等,但是第一次进入程序网
页就会出现一个“不及格”的信息,我都还没输
入分数耶!没办法,之前说过电脑是很笨的,一
进入程序网页它就会开始先判断,我们没有输入
分数数据它就自己把成绩评等当成不及格了。没
关系继续往下讨论。
<%
score=request("score")
if score=empty then
msg="尚未输入分数 "'成绩尚未输入则将 msg变量内容设为 "尚未输
入分数 "
elseif score>60 then
msg="及格 "'分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 "'分数小于 60则将 msg变量内容设为 "不及格 "
end if
%>
<html>
<head>
<title>ex403</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font color="#FF0000" face="华文彩云,">请输入成绩
</font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2>
<input type=submit value="评判等级 " name="Submit">
</td>
</tr>
</tr>
<tr>
<td colspan=2><font color="#0000FF" size="5" face="华文隶书 ">你
的成绩是 </font><font color="red"><% = msg %></font></td>
</tr>
</table>
</form>
</body>
</html>
4-4-3 Else lf 逐条过滤条件语句
当程序中设置多条过滤条件时,我们可以采逐条过滤的方式来筛选
答案,例如,Else lf判断语句区块格式
If 条件式 1 Then
语句区块 1
Else lf条件式 2
语句区块 2
Else lf 条件式 n Then
语句区块 n
Else 语句区块 n +1 End lf
改写我们之前的实作学习,ex402” 例题,将程序语句改为使用
Else lf逐条过滤条件语句,第一次进入程序网页时评等信息为
“尚未输入分数”,输入成绩数据并按下评等按钮后,若分数大于
60分则在网页中显示“及格”,若分数小于 60分则在网页中显示
“不及格”:
提示 ;If score=empty:检验变量 score内是否含有数据,empty就是
没有任何数据,是无值,完全没有任何东西的意思。
4-4-4 嵌套 If语句
什么叫做嵌套 If语句?简单地说,就是 If语句中还有 If语句啦!因
为 If语句本来就是一个语句,所以它也可以成为另一个 If语句的语
句,而 If中又有其他 If的这种层层相叠语句,我们就称之嵌套 If语
句,例如,If-Then-Else 判断语句区块格式
If 条件式 A Then
If 条件式 B Then
语句区块 B-1;
Else
语句区块 B-2
End lf
Else
语句区块 A;
End lf
实做学习(范例光盘 ex404.asp) s
改写我们之前的实作学习,ex403” 例题,将程序语句由 Else lf逐
条过滤条件语句改为使用嵌套 If语句。
程序网页原始代码如下:
<%
score=request("score")
if score<>empty then
if score>60 then
msg="及格 " '分数大于 60则将 msg变量内容设为 "及格 "
else
msg="不及格 " '分数小于 60则将 msg变量内容设为 "不及格 "
end if
else
msg="尚未输入分数 " '成绩尚未输入则将 msg变量内容设为 "尚未
输入分数 "
end if
%>
<html>
<head>
<title>ex404</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font color="#FF0000">请输入成绩 </font></td>
<td><input type="text" size="15" name="score"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="评判等级 "></td>
</tr>
</tr>
<tr>
<td colspan=2>你的成绩是 <font color="red"><%= msg
%></font></td>
</tr>
</table>
</form>
</body>
</html>
4-5 多路径选择的 Select Case语句
使用过了 If-Then-Else语句,我们得知 If-Then-Else语句
在条件成立后会执行 Then之后的语句,若条件不成立则会
执行 Else语句,只能二选一,如果程序有很多状况,需要
建立多条选择路径,则我们可以使用 Else If逐条过滤条
件语句,但是使用 Else If逐条过滤条件语句来撰写程序,
不但眼睛都看花了,而且程序又拖的很长,此时我们就可
以利用具有多路径选择的 Select Case语句来撰写程序。
Select Case语句可以根据变量中的数据数值来决定程序
的执行流程,其变量的类型可以是字符类型、整数类型等,
利用 Select Case语句来撰写程序不但执行速度快,而且
程序也浅显易懂多了,其格式如下:
Select Case判断语句区块格式
Select Case评估值
Case条件值 1
语句区块 1
Case条件值 2
语句区块 2
Case条件值 n
语句区块 n
Case Else
语句区块 n+1
End Select
上面格式意义是:当条件值符合条件值 1时就执行程序区块 1,条件值符合条件值
2时就执行程序区块 2,条件值符合条件值 n时,就执行程序区块 n,如果任何条件
都不符合则执行程序区块 n+1。
一直使用单行文字框的表单组件,现在我们换单选式按钮组件!设计一表单程序
网页,由浏览者选择它喜欢的网页背景颜色,当颜色选定并按下“确定”按钮后
就将网页底色变成浏览者所选定的颜色:
提示,上例中,你有没有发现少了什么?没错,就是 Case Else!这样撰写并没有
问题,只要判别所有的条件值都不符合后,就不会执行任何语句,而直接跳至
End Select 的下一个语句。
<%
color=request("color")
select case color
case "y" '选取黄色
color="yellow"
case "g" '选取绿色
color="green"
case "b" '选取蓝色
color="blue"
end select
%>
<html>
<head>
<title>ex405</title>
</head>
<body bgcolor="<%=color%>">
<font color="#FFFFCC">请选择你喜欢的网页背景颜色 </font>
<p>
<form>
<input type="radio" checked name="color"
value="y">
<font color="#FFFF00">黄色 </font>
<input type="radio" name="color" value="g">
<font color="#00FF33">绿色 </font>
<input type="radio" name="color" value="b">
<font color="#3333FF">蓝色 </font>
<input type="submit" value="确定 ">
</form>
</body>
</html>
学习做个季节选择的表格,Select Case语句的条件值,并不限制于
单一的常数,还可以是逐一列出条件值得方式,例如:让浏览者输
入月份,按下确定确定按钮后,告诉他该月份是哪一个季节:
4-6 重复执行的循环语句
所谓循环( Loop)就是能让某一段的程序能够重复执行许多次的流
程控制语句,在本章节中,将介绍两个比较常用来控制程序的循环
语句,它们是 For-Next及 While-Wend。
4-6-1 计次执行的 For-Next语句
当我们知道循环必须执行的次数时,For-Next语句就是最好的循环
语句。要使用 For-Next语句就必须使用一个控制变量来决定 For-
Next语句要执行的次数,其格式如下:
For-Next循环语句区块格式
For计次变量,=初值 To终值
要重复执行的语句区块
Next
由上面格式中可得知,For-Next语句可以帮我们建立一个循环,我
们只要决定上下限就可以决定循环重复的次数,例如:
For X=1 To 10 Y=Y+X Next
<%
moon=request("moon")
select case moon
case 2,3,4 '逐一列出条件值
msg="春季 "
case 5,6,7
msg="夏季 "
case 8,9,10
msg="秋季 "
case 1,11,12
msg="冬季 "
end select
%>
<html>
<head>
<title>ex406</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td><font face="华文新魏 " size="6" color="#0000FF">请输入
现在的月份 </font></td>
<td><input type="text" size="15" name="moon"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="确定 "></td>
</tr>
</tr>
<tr>
<td colspan=2><font color="#FF0000" size="6" face="
华文隶书 ">现在是 </font><font color="red"><%= msg
%></font></td>
</tr>
</table>
</form>
</body>
</html>
在上例中,最重要的一个地方就是变量 X,它在循环中是扮演一个
计数器的角色,而计数范围从 1到 10,所以在,For---Next” 中的
语句区块将会被执行 10次,因此我们可对 For-Next语句分析如下。
1.第一次执行循环时,变量 X被指定为起始值。
2.执行循环前,变量 X都会先进行是否超过终止值的检验,若超过,
则结束循环,否则就继续执行循环内的语句。
3.执行过循环后,变量 X的值将会加上步进值( 1)。
For-Next语句其实还有一个步进值的设置,如果我们没有特别指定
步进值的大小,那步进值的大小就默认为( 1),也就是说循环便
会在执行过循环后自动加( 1)。
For-Next循环语句区块格式
For计次变量 =初值 TO终值 Step步进值
重复执行的语句区块
Next
例如,For X=1 To Step 2
Y=Y+X
Next
请问你:上例 For-Next循环语句结束后,变量 Y等于多少?绝对不
是 55喔。
在我们这个例子中变量 X被指定为起始值 1,也就说变量 X一开始是 1,
可是每执行一次循环后变量 X并不是加 1,而是加 2,所以
Y=1+3+5+7+9,答案应该是 25。
For-Next语句不仅可以是递增循环,也可以是递减循环,其格式如
下:
For-Next递减循环语句区块格式
For计次变量 =初值 TO终值 Step - 步进值
语句区块
Next
也就是说递减循环 For-Next语句的起始值必须大于终止值,而判断
是否脱离循环的语句就变成:计次变量值 <终止值,同时,步进值
一定要设置,并且步进值必须是负数。例如:
For X=10 To 1 Step -1
Y=Y+X
Next
<%
num=request("num")
if num<>empty then
ans=1
for i=1 to num
ans=ans*i
next
end if
%>
<html>
<head>
<title>ex407</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td>请输入 N值 </td>
<td><input type="text" size="15" name="num"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="确定 "></td>
</tr>
</tr>
<tr>
<td colspan=2>1乘到 N的答案是 <font color="red"><%= ans
%></font></td>
</tr>
</table>
</form>
</body>
</html>
让我们来设计一个由自己指定 N值,然后计算 1× 2× ------× ( N+1)
× N,并将计算结果显示于网页中的程序。
首先我们将变量 Ans的值设为 1,所以,Ans=Ans*1*2× ---*N-1*N”
等于,Ans=1*2*------*N-1*N”,因此,Ans=1*2*------*N-1*N”
就等于,Ans=1”,,Ans=Ans=*2”,, Ans=Ans*3” ------
“Ans:=Ans*N” 连续运算的结果。所以使用 For-Next语句将是最
佳的选择。
试撰写一 ASP语句,使网页中出现下图的画面。
4-6-2 While-Wend 循环语句区块格式
While条件式
要重复执行的语句区块
Wend
While-Wend 循环语句是由保留字 While开始,在其后是一个条件式,
而这个条件式则是一个布尔值表达式,如果这个条件成立(布尔值
运算结果为 True),那么在 While-Wend 循环语句里(语句区块)
的程序代码就会执行至结尾,然后再判断条件式,当这个条件式不
再成立时,While-Wend 循环语句就会停止执行。现在我们来比较
一下 For-Next与 While-Wend语句:计算 1加至 10:
For-Next写法
For X=1 To 10
Y=Y+X
Next
While-When写法
X=1 While X<=10
Y=Y+X
X=X+1
Wend
看完这两个语句的比较,你是不是发现:同样的功能,但是 While-
wend语句似乎麻烦多了,不过,若不知道循环会执行几次,还是
While-wend语句比较适合,如下例:
实做学习( ex410.asp)
请设计一 ASP程序,计算 6561是 3的几次方,度将答案显示于网页中。
在以上程序中的原始代码中的,&” 符号是一个数据串接符号,它
会将该符号前后的数据连接在一起,例如:“我是” &“book”,
则串接后的字符串数据就变成:“我是 book” 。