ASP基础入门第五篇(ASP脚本循环语句)


  本文标签:ASP脚本循环语句,ASP脚本

继上一篇我们学习了脚本语言 VBScript 的函数和条件语句后,今天我们继续来看看VBScript 中的循环语句 。

   循环语句的作用就是重复执行程序代码,循环可分为三类:一类在条件变为“假”之前重复执行语句,一类在条件变为“真”之前重复执行语句,另一类按照指定的次数重复执行语句 。在VBScript 中可使用下列循环语句:
   Do...Loop: 当(或直到)条件为“真”时循环 。
   While...Wend: 当条件为“真”时循环 。
   For...Next: 指定循环次数,使用计数器重复运行语句 。
   For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句 。    我们先来看看 Do...Loop,它是可以多次(次数不定)运行语句块 。当条件为“真”时或条件变为“真”之前,重复执行语句块 。请看下例:   

< html>

< head>
< title>DoLoop.asp< /title>< body bgcolor="#FFFFFF">< /head>< p>< /p>
< p> 请将今年到本月为止的每个月份的销售结算记录填写在本页之上 。< P>
  < %
  counter = 1
thismonth = month(now())
Do while counter < thismonth + 1
response.write " " & counter & " 月份 : "
response.write "______________________________" & "< BR>< br>"
If counter >13 then
  exit do
  end if
  counter = counter+1
Loop
  %>
  < hr>< /body>< /html>

       这段 ASP 程序运用循环语句制作了一张销售结算记录表,将以上代码剪贴至记事簿保存为 DoLoop.asp,并在浏览器中以 HTTP 方式进行浏览,根据当前的月份的不同,你将看到如下图的结果 。
<img src=http://arch.pconline.com.cn/pcedu/empolder/wz/asp/10111/pic/2001124_asp_11.gif>
我们来分析一下此段程序,我们的目的是要根据当前的月份打印一张表格,首先我们建立一个计数器“count”并将其值设为 1,然后我们用函数 month() 和 now() 得到当前的月份,最后建立循环,当 count 的值小于当前月份的值加 1 的时候,即显示月份值及一条横线并将 count 的值加 1,循环语句重复执行直到以上条件为假时退出循环 。其中如果 count 大于 13 则用 exit do 立即退出循环 。
  Do Loop 语句还可以使用以下语法:

  Do

  [statements][Exit Do]

  [statements]Loop [{While | Until} condition]

   While...Wend 语句是为那些熟悉其用法的用户提供的 。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句 。下面我们来看看 For Next 语句 。For...Next 语句用于将语句块运行指定的次数,在循环中使用计数器变量,该变量的值随每一次循环增加或减少 。

   下面的示例将过程 MyProc 重复执行 50 次 。For 语句指定计数器变量 x 及其起始值与终止值 。Next 语句使计数器变量每次加 1 。   

Sub DoMyProc50Times()
   Dim x
   For x = 1 To 50
   MyProc
   Next
   End Sub

   关键字 Step 用于指定计数器变量每次增加或减少的值 。在下面的示例中,计数器变量 j 每次加 2 。循环结束后,total 的值为 2、4、6、8 和 10 的总和 。   

Sub TwosTotal()
   Dim j, total
   For j = 2 To 10 Step 2
   total = total + j
   Next
   MsgBox " 总和为 " & total & " 。"
   End Sub

   要使计数器变量递减,可将 Step 设为负值 。此时计数器变量的终止值必须小于起始值 。在下面的示例中,计数器变量 myNum 每次减 2 。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和 。  

Sub NewTotal()
   Dim myNum, total
   For myNum = 16 To 2 Step -2
   total = total + myNum
   Next
   MsgBox " 总和为 " & total & " 。"
   End Sub

   Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句 。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句 。如果条件为 False,循环将照常运行 。

   最后,让我们来看看 For Each...Next 语句 ,For Each...Next 循环与 For...Next 循环类似 。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句 。这在不知道集合中元素的数目时非常有用 。它的语法如下:   

For Each element In group
   [statements]
   [Exit For]
   [statements]Next [element]

   如果 group 中有至少一个元素,就会进入 For Each 块执行 。一旦进入循环,便首先对 group 中第一个元素执行循环中的所有语句 。只要 group 中还有其他的元素,就会对每个元素执行循环中的语句 。当 group 中没有其他元素时退出循环,然后从 Next 语句之后的语句继续执行 。

   至此,我们已经完成了对脚本语言 VBScript 所有的基本知识的学习,但是仅凭阅读现有的这几篇文章你是无法熟练运用 VBScript 的,你必须通过不断的实践来提高自己的等级 。当然,如果你熟悉 C,你也可以选择JavaScript 来作为 ASP 应用程序的脚本语言 。不知大家有没有发现 ASP 程序的调试比较困难,因为没有什么现成的工具,在这里我向大家简要介绍一下 Microsoft Script Debugger,我们可以运用它来进行一定量的程序调试工作 。

  IIS4.0 所包括的 Microsoft Script Debugger(Script 侦错工具),提供脚本程序的侦错功能 。您可以使用 Microsoft Script 侦错工具来进行对使用 VBScript、JScript 编写的脚本程序,以及 Java applets、beans 和 ActiveX 组件的侦错工作 。

   有的脚本程序在用户端浏览器执行,有的脚本程序(< % … %> 中的部份)在服务器端执行 。Microsoft Script Debugger,可以侦错用户端执行的脚本程序以及服务器端执行脚本程序 。    在用户端浏览器执行的脚本程序是在用户端的浏览器当中执行,包括在标准 HTML 代码中的 VBScript、Jscript 部份 。在浏览器载入此 HTML 代码或譬如按下按钮触发事件时,将执行此包括脚本程序的 HTML 代码 。用户端浏览器执行的脚本程序,主要用于对 HTML 表单输入的基本检查等功能 。
   在服务器端执行的脚本程序是在 IIS 服务器端执行,包括在 .asp 程序中 。先在 IIS 服务器上执行,执行结果产生标准的 HTML 代码,再传送到用户端浏览器 。服务器端执行的脚本程序,主要用于多个网页之间的连结,HTML 表单输入的处理,以及存取服务器上数据库的资料等 。

Microsoft Script Debugger 提供以下的除错功能:

   1、设定中断点

   2、逐步追踪脚本程序 。

   3、设定书签 。

   4、检视呼叫堆叠 。

   5、检视和更改变数值 。

   6、执行脚本指令 。

从下一篇开始,我们将开始学习ASP 的内建对象,大家不要走开呀 。