|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
使用循环重复执行代码 wTBLinux联盟 wTBLinux联盟 循环用于重复执行一组语句。循环可分为三类:一类在条件变为 False 之前重复执行语句,一类在条件变为 True 之前重复执行语句,另一类按照指定的次数重复执行语句。 wTBLinux联盟 wTBLinux联盟 在 VBScript 中可使用下列循环语句: wTBLinux联盟 wTBLinux联盟 ·Do...Loop: 当(或直到)条件为 True 时循环。 wTBLinux联盟 ·While...Wend: 当条件为 True 时循环。 wTBLinux联盟 ·For...Next: 指定循环次数,使用计数器重复运行语句。 wTBLinux联盟 ·For Each...Next: 对于集合中的每项或数组中的每个元素,重复执行一组语句。 wTBLinux联盟 wTBLinux联盟 使用 Do 循环 wTBLinux联盟 wTBLinux联盟 可以使用 Do...Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。 wTBLinux联盟 wTBLinux联盟 当条件为 True 时重复执行语句 wTBLinux联盟 wTBLinux联盟 While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstWhile 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。 wTBLinux联盟 wTBLinux联盟 Sub ChkFirstWhile() wTBLinux联盟 Dim counter, myNum wTBLinux联盟 counter = 0 wTBLinux联盟 myNum = 20 wTBLinux联盟 Do While myNum > 10 wTBLinux联盟 myNum = myNum - 1 wTBLinux联盟 counter = counter + 1 wTBLinux联盟 Loop wTBLinux联盟 MsgBox "循环重复了 " & counter & " 次。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 Sub ChkLastWhile() wTBLinux联盟 Dim counter, myNum wTBLinux联盟 counter = 0 wTBLinux联盟 myNum = 9 wTBLinux联盟 Do wTBLinux联盟 myNum = myNum - 1 wTBLinux联盟 counter = counter + 1 wTBLinux联盟 Loop While myNum > 10 wTBLinux联盟 MsgBox "循环重复了 " & counter & " 次。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 重复执行语句直到条件变为 True wTBLinux联盟 wTBLinux联盟 Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件:在进入循环之前检查条件(如下面的 ChkFirstUntil 示例);或者在循环至少运行完一次之后检查条件(如下面的 ChkLastUntil 示例)。只要条件为 False,就会进行循环。 wTBLinux联盟 wTBLinux联盟 Sub ChkFirstUntil() wTBLinux联盟 Dim counter, myNum wTBLinux联盟 counter = 0 wTBLinux联盟 myNum = 20 wTBLinux联盟 Do Until myNum = 10 wTBLinux联盟 myNum = myNum - 1 wTBLinux联盟 counter = counter + 1 wTBLinux联盟 Loop wTBLinux联盟 MsgBox "循环重复了 " & counter & " 次。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 Sub ChkLastUntil() wTBLinux联盟 Dim counter, myNum wTBLinux联盟 counter = 0 wTBLinux联盟 myNum = 1 wTBLinux联盟 Do wTBLinux联盟 myNum = myNum + 1 wTBLinux联盟 counter = counter + 1 wTBLinux联盟 Loop Until myNum = 10 wTBLinux联盟 MsgBox "循环重复了 " & counter & " 次。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 退出循环 wTBLinux联盟 wTBLinux联盟 Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环(例如要避免死循环),所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False,循环将照常运行。 wTBLinux联盟 wTBLinux联盟 在下面的示例中,myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件,防止出现死循环。 wTBLinux联盟 wTBLinux联盟 Sub ExitExample() wTBLinux联盟 Dim counter, myNum wTBLinux联盟 counter = 0 wTBLinux联盟 myNum = 9 wTBLinux联盟 Do Until myNum = 10 wTBLinux联盟 myNum = myNum - 1 wTBLinux联盟 counter = counter + 1 wTBLinux联盟 If myNum < 10 Then Exit Do wTBLinux联盟 Loop wTBLinux联盟 MsgBox "循环重复了 " & counter & " 次。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 使用 While...Wend wTBLinux联盟 wTBLinux联盟 While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性,所以建议最好使用 Do...Loop 语句。 wTBLinux联盟 wTBLinux联盟 使用 For...Next wTBLinux联盟 wTBLinux联盟 For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量,该变量的值随每一次循环增加或减少。 wTBLinux联盟 wTBLinux联盟 例如,下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。 wTBLinux联盟 wTBLinux联盟 Sub DoMyProc50Times() wTBLinux联盟 Dim x wTBLinux联盟 For x = 1 To 50 wTBLinux联盟 MyProc wTBLinux联盟 Next wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中,计数器变量 j 每次加 2。循环结束后,total 的值为 2、4、6、8 和 10 的总和。 wTBLinux联盟 wTBLinux联盟 Sub TwosTotal() wTBLinux联盟 Dim j, total wTBLinux联盟 For j = 2 To 10 Step 2 wTBLinux联盟 total = total + j wTBLinux联盟 Next wTBLinux联盟 MsgBox "总和为 " & total & "。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 要使计数器变量递减,可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中,计数器变量 myNum 每次减 2。循环结束后,total 的值为 16、14、12、10、8、6、4 和 2 的总和。 wTBLinux联盟 wTBLinux联盟 Sub NewTotal() wTBLinux联盟 Dim myNum, total wTBLinux联盟 For myNum = 16 To 2 Step -2 wTBLinux联盟 total = total + myNum wTBLinux联盟 Next wTBLinux联盟 MsgBox "总和为 " & total & "。" wTBLinux联盟 End Sub wTBLinux联盟 wTBLinux联盟 Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行。 wTBLinux联盟 wTBLinux联盟 使用 For Each...Next wTBLinux联盟 wTBLinux联盟 For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。 wTBLinux联盟 wTBLinux联盟 在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中: wTBLinux联盟 wTBLinux联盟 <HTML> wTBLinux联盟 <HEAD><TITLE>窗体与元素</TITLE></HEAD> wTBLinux联盟 <SCRIPT LANGUAGE="VBScript"> wTBLinux联盟 <!-- wTBLinux联盟 Sub cmdChange_OnClick wTBLinux联盟 Dim d '创建一个变量 wTBLinux联盟 Set d = CreateObject("Scripting.Dictionary") wTBLinux联盟 d.Add "0", "Athens" '添加键和项目 wTBLinux联盟 d.Add "1", "Belgrade" wTBLinux联盟 d.Add "2", "Cairo" wTBLinux联盟 wTBLinux联盟 For Each I in d wTBLinux联盟 Document.frmForm.Elements(I).Value = D.Item(I) wTBLinux联盟 Next wTBLinux联盟 End Sub wTBLinux联盟 --> wTBLinux联盟 </SCRIPT> wTBLinux联盟 <BODY> wTBLinux联盟 <CENTER> wTBLinux联盟 <FORM NAME="frmForm" wTBLinux联盟 wTBLinux联盟 <Input Type = "Text"><p> wTBLinux联盟 <Input Type = "Text"><p> wTBLinux联盟 <Input Type = "Text"><p> wTBLinux联盟 <Input Type = "Text"><p> wTBLinux联盟 <Input Type = "Button" NAME="cmdChange" VALUE="单击此处"><p> wTBLinux联盟 </FORM> wTBLinux联盟 </CENTER> wTBLinux联盟 </BODY> wTBLinux联盟 </HTML>
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|