Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因 
为通常只是在某些特殊情况下(例如在发生错误时)要退出循环,所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False,循环将照常运行 
。 
   使用 For Each...Next For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数,而是对于数组中的每个元素或对象集合中的每一项重复 
一组语句。这在不知道集合中元素的数目时非常有用。 
   在以下示例中,Dictionary 对象的内容用于将文本分别放置在多个文本框中: 
   <HTML>  
   <HEAD><TITLE>窗体与元素</TITLE></HEAD>  
   <SCRIPT LANGUAGE="VBScript">  
   <!--  
   Sub cmdChange_OnClick  
          Dim d '创建一个变量  
          Set d = CreateObject("Scripting.Dictionary")  
          d.Add "0", "Athens" '添加键和项目  
          d.Add "1", "Belgrade"  
          d.Add "2", "Cairo"  
          For Each I in d 
                Document.frmForm.Elements(I).Value = D.Item(I)  
          Next  
    End Sub 
    --> 
    </SCRIPT>  
    <BODY>  
    <CENTER>  
    <FORM NAME="frmForm"  
    <Input Type = "Text"><p>  
    <Input Type = "Text"><p>  
    <Input Type = "Text"><p>  
    <Input Type = "Text"><p>  
    <Input Type = "Button" NAME="cmdChange" VALUE="单击此处"><p>  
    </FORM>  
    </CENTER> 
    </BODY>  
    </HTML> 
VBScript 过程 
     过程分类 
     在 VBScript 中,过程被分为两类:Sub 过程和 Function 过程。 
     Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果  
Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。 
     下面的 Sub 过程使用两个固有的(或内置的)VBScript 函数,即 MsgBox 和 InputBox,来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用  
VBScript 创建的 Function 过程完成。此过程在以下讨论之 
后演示。 
     Sub ConvertTemp()  
     temp = InputBox("请输入华氏温度。", 1)  
     MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"  
     End Sub 
     Function 过程 
     Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程 
可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值, 
这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。 
     在下面的示例中,Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时,包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消 
息框中。 
     Sub ConvertTemp() 
     temp = InputBox("请输入华氏温度。", 1)  
     MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"  
     End Sub  
     Function Celsius(fDegrees)  
     Celsius = (fDegrees - 32) * 5 / 9  
     End Function 
过程的数据进出 
     给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时,过程名之 
后必须紧跟括号。括号中包含所有参数,参数间用逗号分隔。例如,在下面的示例中,fDegrees 是传递给 Celsius 函数的值的占位符: 
    Function Celsius(fDegrees)  
    Celsius = (fDegrees - 32) * 5 / 9 
    End Function 
    要从过程获取数据,必须使用 Function 过程。请记住,Function 过程可以返回值;Sub 过程不返回值。 
在代码中使用 Sub 和 Function 过程 
     
    调用 Function 过程时,函数名必须用在变量赋值语句的右端或表达式中。例如: 
    Temp = Celsius(fDegrees)  
    或  
    MsgBox "温度为 " & Celsius(fDegrees) & " 摄氏度。" 
    调用 Sub 过程时,只需输入过程名及所有参数值,参数值之间使用逗号分隔。不需使用 Call 语句,但如果使用了此语句,则必须将所有参数包 
含在括号之中。 
    下面的示例显示了调用 MyProc 过程的两种方式。一种使用 Call 语句;另一种则不使用。两种方式效果相同。 
     Call MyProc(firstarg, secondarg)  
     MyProc firstarg, secondarg  
     请注意当不使用 Call 语句进行调用时,括号被省略。 
VBScript 编码约定 
    编码约定是帮助您使用 Microsoft Visual Basic Scripting Edition 编写代码的一些建议。编码约定包含以下内容:  
    * 对象、变量和过程的命名约定 
    * 注释约定  
    * 文本格式和缩进指南  
    使用一致的编码约定的主要原因是使 Script 或 Script 集的结构和编码样式标准化,这样代码易于阅读和理解。使用好的编码约定可以使源代码明白、易读、准确,更加 
直观且与其他语言约定保持一致。  
常数命名约定 
    VBScript 的早期版本不允许创建用户自定义常数。如果要使用常数,则常数以变量的方式实现,且全部字母大写以和其他变量区分。常数名中的多个单词用下划线 (_) 分 
隔。例如: 
    USER_LIST_MAX 
    NEW_LINE 
    这种标识常数的方法依旧可行,但您还可以选择其他方案,用 Const 语句创建真正的常数。这个约定使用大小写混合的格式,并以“con”作为常数名的前缀。例如   
    conYourOwnConstant 
变量命名约定 
    出于易读和一致性的目的,请在 VBScript 代码中使用以下变量命名约定: 
    ttt 
格式化代码 
    应尽可能多地保留屏幕空间,但仍允许用代码格式反映逻辑结构和嵌套。以下为几点提示:  
    * 标准嵌套块应缩进 4 个空格。  
    * 过程的概述注释应缩进 1 个空格。  
    * 概述注释后的最高层语句应缩进 4 个空格,每一层嵌套块再缩进 4 个空格。 
    例如: 
    '*********************************************************  
    ' 目的: 返回指定用户在 UserList 数组中第一次出现的位置。 
    ' 输入: strUserList(): 所查找的用户列表。  
    ' strTargetUser: 要查找的用户名。  
    ' 返回: strTargetUser 在 strUserList 数组中第一次出现时的索引。  
    ' 如果目标用户未找到,返回 -1。  
    '********************************************************* 
    Function intFindUser (strUserList(), strTargetUser)  
          Dim i ' 循环计数器。  
          Dim blnFound ' 发现目标的标记。 
          intFindUser = -1 i = 0 ' 初始化循环计数器。  
          Do While i <= Ubound(strUserList) and Not blnFound  
                If strUserList(i) = strTargetUser Then  
                        blnFound = True ' 标记设为 True。  
                        intFindUser = i ' 返回值设为循环计数器。 
               End If 
               i = i + 1 ' 循环计数器加 1。  
           Loop  
     End Function |