ASP循环语句及实例.doc_第1页
ASP循环语句及实例.doc_第2页
ASP循环语句及实例.doc_第3页
ASP循环语句及实例.doc_第4页
ASP循环语句及实例.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASP循环语句及实例 循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。在 VBScript 中可使用下列循环语句:Do.Loop: 当(或直到)条件为 True 时循环。While.Wend: 当条件为 True 时循环。For.Next: 指定循环次数,使用计数器重复运行语句。For Each.Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。使用 Do 循环可以使用 Do.Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。当条件为 True 时重复执行语句While 关键字用于检查 Do.Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。Sub ChkFirstWhile()Dim counter, myNumcounter = 0myNum = 20Do While myNum 10myNum = myNum - 1counter = counter + 1LoopMsgBox 循环重复了 & counter & 次。End SubSub ChkLastWhile()Dim counter, myNumcounter = 0myNum = 9DomyNum = myNum - 1counter = counter + 1Loop While myNum 10MsgBox 循环重复了 & counter & 次。End Sub重复执行语句直到条件变为 TrueUntil 关键字用于检查 Do.Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。Sub ChkFirstUntil()Dim counter, myNumcounter = 0myNum = 20Do Until myNum = 10myNum = myNum - 1counter = counter + 1LoopMsgBox 循环重复了 & counter & 次。End SubSub ChkLastUntil()Dim counter, myNumcounter = 0myNum = 1DomyNum = myNum + 1counter = counter + 1Loop Until myNum = 10MsgBox 循环重复了 & counter & 次。End Sub退出循环Exit Do 语句用于退出 Do.Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If.Then.Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。在下面的示例中,myNum 的初始值将导致死循环。If.Then.Else 语句检查此条件,防止出现死循环。Sub ExitExample()Dim counter, myNumcounter = 0myNum = 9Do Until myNum = 10myNum = myNum - 1counter = counter + 1If myNum 10 Then Exit DoLoopMsgBox 循环重复了 & counter & 次。End Sub使用 While.WendWhile.Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While.Wend 缺少灵活性,所以建议最好使用 Do.Loop 语句。使用 For.NextFor.Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。Sub DoMyProc50Times()Dim xFor x = 1 To 50MyProcNextEnd Sub关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。Sub TwosTotal()Dim j, totalFor j = 2 To 10 Step 2total = total + jNextMsgBox 总和为 & total & 。End Sub要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。Sub NewTotal()Dim myNum, totalFor myNum = 16 To 2 Step -2total = total + myNumNextMsgBox 总和为 & total & 。End SubExit For 语句用于在计数器达到其终止值之前退出 For.Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If.Then.Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。使用 For Each.NextFor Each.Next 循环与 For.Next 循环类似。For Each.Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中:窗体与元素FORM NAME=frmFormDo.Loop 语句请参阅Exit 语句 | For.Next 语句 | While.Wend 语句要求版本 1当条件为 True 时或条件变为 True 之前重复执行某语句块。Do While | Until conditionstatementsExit DostatementsLoop也可以使用下面的语法:DostatementsExit DostatementsLoop While | Until condition参数condition数值或字符串表达式,其值为 True 或 False。如果 condition 为 Null,则 condition 被当作 False。statements当 condition 为 True 时被重复执行的一条或多条命令。说明Exit Do 仅可以用在 Do.Loop 控制语句中,提供另一种退出 Do.Loop 的方法。可以在 Do.Loop 语句中的任何位置放置任意个 Exit Do。Exit Do 通常与条件判断语句(如 If.Then )一起使用,将控制传递给紧随在 Loop 语句后面的语句。当用于嵌套 Do.Loop 中的时候,Exit Do 将控制传递给其所在循环的上一层嵌套循环。下面例子举例说明如何使用 Do.Loop 语句:Do Until DefResp = vbNoMyNum = Int (6 * Rnd + 1) 产生 1 到 6 之间的随机数。DefResp = MsgBox (MyNum & 想要另一个数吗?, vbYesNo)LoopDim Check, CounterCheck = True: Counter = 0 初始化变量。Do 外层循环。Do While Counter 20 内层循环。Counter = Counter + 1 增加计数器。If Counter = 10 Then 如果条件为 True.Check = False 将标志值设置为 False。Exit Do 终止内层循环。End IfLoopLoop Until Check = False 立即终止外层循环。While.Wend 语句请参阅Do.Loop 语句要求版本 1当指定的条件为 True 时,执行一系列的语句。While condition; Version statementsWend参数condition数值或字符串表达式,其计算结果为 True 或 False。如果 condition 为 Null,则 condition 被当作 False。statements在条件为 True 时执行的一条或多条语句。说明如 果 condition 为 True,则 statements 中所有 Wend 语句之前的语句都将被执行,然后控制权将返回到 While 语句,并且重新检查 condition。如果 condition 仍为 True,则重复执行上面的过程。如果不为 True,则从 Wend 语句之后的语句继续执行程序。While.Wend 循环可以是多层嵌套结构。每个 Wend 与最近的 While 语句对应。注意 Do.Loop 语句提供一种结构化与适应性更强的方法以执行循环。下面例子举例说明如何使用 While.Wend 语句:Dim CounterCounter = 0 初始化变量。While Counter 20 测试计数器的值。Counter = Counter + 1 增加计数器。Alert CounterWend 计数器大于 19 时终止循环。For.Next 语句请参阅Do.Loop 语句 | Exit 语句 | For Each.Next 语句 | While.Wend 语句要求版本 1以指定次数重复执行一组语句。For counter = start To end Step stepstatementsExit ForstatementsNext参数counter用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。startcounter 的初值。endcounter 的终值。stepcounter 的步长。如果没有指定,则 step 的默认值为 1。statementsFor 和 Next 之间的一条或多条语句,将被执行指定次数。说明step 参数可以是正数或负数。step 参数值决定循环的执行情况,如下所示:值 如果 . 则循环执行正数或 0 counter = end当循环启动并且所有循环中的语句都执行后,step 值被加到 counter 中。这时,或者循环中的语句再次执行(基于循环开始执行时同样的测试),或者退出循环并从 Next 语句之后的语句继续执行。注意 在循环体内改变 counter 的值,将会使程序代码的阅读和调试变得更加困难。Exit For 只能用于 For Each.Next 或 For.Next 结构中,提供另一种退出循环的方法。可在语句中的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用(例如 If.Then),并立即将控制权转移到 Next 之后的语句。可以将一个 For.Next 循环放置在另一个 For.Next 循环中,组成嵌套循环。每个循环中的 counter 要使用不同的变量名。下面的结构是正确的:For I = 1 To 10For J = 1 To 10For K = 1 To 10. . .NextNextNextFor Each.Next 语句请参阅Do.Loop 语句 | Exit 语句 | For.Next 语句 | While.Wend 语句要求版本 2对数组或集合中的每个元素重复执行一组语句。For Each element In groupstatementsExit ForstatementsNext element参数element用来枚举集合或数组中所有元素的变量。对于集合,element 可能是 Variant 变量、通用 Object 变量或任意指定的 Automation 对象变量。对于数组,element 只能是 Variant 变量。group对象集合或数组的名称。statements对于 group 中的每一项执行的一条或多条语句。说明如 果 group 中有至少一个元素,就会进入 For Each 块执行。一旦进入循环,便首先对 group 中第一个元素执行循环中的所有语句。只要 group 中还有其他的元素,就会对每个元素执行循环中的语句。当 group 中的没有其他元素时退出循环,然后从 Next 语句之后的语句继续执行。Exit For 只能用于 For Each.Next 或 For.Next 控制结构中,提供另一种退出循环的方法。可在循环的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用(例如 If.Then),并立即将控制权转移到 Next 之后的语句。可以将一个 For Each.Next 循环放置在另一个之中,组成嵌套式 For Each.Next 循环。但是每个循环的 element 必须是唯一的。注意 如果省略 Next 语句中的 element,则程序仍会象已包含它一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论