VBScript编程语言.ppt_第1页
VBScript编程语言.ppt_第2页
VBScript编程语言.ppt_第3页
VBScript编程语言.ppt_第4页
VBScript编程语言.ppt_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

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

文档简介

第3章 VBScript编程语言 3.1 VBScript概述 3.2 VBScript的输入与输出 3.3 VBScript结构化程序设计 3.4 综合练习 1 3.1 VBScript概述 VBScript是一种脚本语言,属于Microsoft Visual Basic的简化版本。 VBScript通过变量,操作符,循环,分支,函 数和子过程,扩展了HTML。通过在HTML网页中加入 VBScript脚本,可以使静态的HTML网页成为动态网 页。 2 3.1 VBScript概述 3.1.1 ASP的编程语言 3.1.2 客户端和服务器端编程语言 3.1.3 在HTML页面中添加VBScript代码 3 3.1.1 ASP的编程语言 VBScript是Active Sever Pages的缺省语言, 当然也可以在ASP网页中使用其它脚本语言,如 Jscript等。 可以在HTML文件中直接嵌入VBScript脚本 ,从而扩展HTML,使它不仅仅是一种页面格式语言 。带有VBScript脚本的网页在每次下载到浏览器时 都可以是不同的,而且可以对用户的操作做出反应 。 4 3.1.2 客户端和服务器端编程语言 VBScript既可以作为客户端编程语言, 也可以作为服务器端编程语言。 客户端编程语言是可以由浏览器解 释执行的语言。当以客户端编程语言编制的 程序被下载到一个兼容的浏览器中时,浏览 器将自动执行该程序。 5 3.1.2 客户端和服务器端编程语言 客户端编程语言的优点: v浏览器完成了所有的工作,可以减轻服务器的负担 。 v客户端程序运行起来比服务器端程序快得多。当一 个浏览器的用户执行了一个操作时,不必通过网络对 其做出响应,客户端程序就可以做出响应。 但是,一般来说,可以解释VBScript脚本的浏览 器只有Microsoft Internet Explorer,而Netscape Navigator将忽略VBScript脚本。 6 3.1.2 客户端和服务器端编程语言 VBScript也可以作为服务器端编程语言。服务 器端编程语言是在服务器上执行的语言。 当创建ASP网页时,将用VBScript作为服务器端 编程语言。用VBScript作为服务器端编程语言的好 处是VBScript不受浏览器的限制。VBScript脚本在 网页通过网络传送给浏览器之前被执行,Web浏览器 收到的只是标准的HTML文件。 7 3.1.3 在HTML页面中添加VBScript代码 在HTML文件中,使用标记引用VBScript 代码。VBScript代码写在标记之 间。 【例3-1】第一个VBScript例子。 说明:代码的开始和结束部分都有标记。 LANGUAGE属性用于指定所使用的脚本语言。 VBScript代码被嵌入在注释标记()中。 8 3.1.3 在HTML页面中添加VBScript代码 SCRIPT块可以出现在HTML页面的任何地方(BODY或HEAD 部分之中)。然而最好将所有的目标脚本代码放在HEAD部分 中,以使脚本代码集中放置。这样可以确保在BODY部分调用 代码之前所有脚本代码都被读取并解码。但是当脚本代码作 为对象的事件代码时,则不必把它放在HEAD部分中,可以就 近放在对象附近。 【例3-2】以下代码将脚本代码放在按钮对象的定义之后以响 应按钮的单击事件。 9 3.2 VBScript基础 3.2.1 VBScript的输入与输出 3.2.2 VBScript的数据类型 3.2.3 VBScript的变量 3.2.4 VBScript的数组变量 3.2.5 VBScript的常数 3.2.6 VBScript的运算符与表达式 3.2.7 VBScript的常用函数 3.2.8 语句 10 3.2.1 VBScript的输入与输出 VBScript中实现信息输入与输出的方法 有两种: v一种是使用Document对象及其子对象的方法 和属性,如例3-1中的document.write(); v一种是使用VBScript的内置函数。VBScript 信息框函数和输入框函数。 11 3.2.1 VBScript的输入与输出 1. 信息框函数 信息框函数(MsgBox)是常用的输出信息的函 数。MsgBox函数在对话框中显示信息,等待用户单击 按钮,并返回一个整数以标明用户单击了哪个按钮。 其语法格式为: 变量= MsgBox(信息内容,对话框类型, 对话框标题) 12 3.2.1 VBScript的输入与输出 说明: 信息内容指定在对话框中出现的文本 ,在信息内容中使用硬回车符(CHR(13))可以使文 本换行。最多可有1024个字符。 对话框类型指定对话框中出现的按钮和图标 ,一般有三个参数。其取值和含义见表3-1、表3-2 、表3-3(p54)。三种参数值可以相加以达到所需 要的样式。 对话框标题指定对话框的标题。 13 3.2.1 VBScript的输入与输出 Msgbox( )返回的值指明了在对话框中选择哪一个 按钮,见表3-4(p55) 。 代码中的值可以是数值,也可以是数值常量。 如果省略了某些可选项,必须加入相应的逗号分隔 符。 若不需要返回值,则可以使用MsgBox的命令形式: MsgBox信息内容,对话框类型,对话框标题 14 3.2.1 VBScript的输入与输出 例如:msg = MsgBox(“请确认输入的数据是 否正确!“, 3 + 48 + 0, “数据检查“) 15 3.2.1 VBScript的输入与输出 2. 输入框函数 输入框函数(InputBox)显示一个能接受用 户输入的对话框,并返回用户在对话框中输入的信 息。 其语法格式为: 变量 = InputBox(信息内容,对话框标 题,默认内容) 16 3.2.1 VBScript的输入与输出 说明: 信息内容指定在对话框中出现的文本 。在信息内容中使用硬回车符(CHR(13))可以 使文本换行。最多可有1024个字符。 对话框标题指定对话框的标题。 默认内容可以指定输入框的文本框中显示的 默认文本。如果用户单击“确定”按钮,文本框中 的文本(字符串)将返回到变量中,若用户单击“ 取消”按钮,返回的将是一个零长度的字符串。 17 3.2.1 VBScript的输入与输出 例如:aa = InputBox(“信息内容”,“对话框标题 ”, “默认内容“) 注意:如果省略了某些可选项,必须加入相应的逗 号分隔符。 18 3.2.2 VBScript的数据类型 VBScript只有一种数据类型,称为Variant(变 体类型)。 Variant是一种特殊的数据类型,根据使用 的方式,它可以包含不同类别的信息。 最简单的Variant可以包含数值或字符串信息。 Variant用于数值上下文中时作为数值处理,用于字 符串上下文中时作为字符串处理。Variant还可以进 一步区分数值信息的特定含义。例如使用数值信息表 示日期或时间。 19 3.2.2 VBScript的数据类型 Variant包含的数据信息类型称为子类型。大多 数情况下,可将所需的数据放进Variant中,而 Variant也会按照最适用于其包含的数据的方式进行 操作。 表3-5(p56)显示了Variant包含的数据子类 型。可以使用转换函数来转换数据的子类型。另外, 可使用VarType函数返回数据的Variant子类型。 20 3.2.3 VBScript的变量 变量是一种使用方便的占位符,用于引 用计算机内存地址,该地址可以存储脚本运 行时可更改的程序信息。 使用变量并不需要了解变量在计算机内 存中的地址,只要通过变量名引用变量就可 以查看或更改变量的值。 21 3.2.3 VBScript的变量 1. 变量的命名规则 第一个字符必须是字母,可以包括下划线 (_); 不能包含嵌入的句点; 长度不能超过255个字符; 在被声明的作用域内必须唯一。 VBScript变量名对大小写不敏感。 22 3.2.3 VBScript的变量 2. 声明变量 声明变量的一种方式是使用Dim语句、Public语 句和Private语句在脚本中显式声明变量,并分配存 储空间。 声明变量的语法为: Dim | Private | Public变量名,变 量名2 ,变量名3 23 3.2.3 VBScript的变量 说明: Public语句声明的变量可用于全部脚本中 的所有过程;用Dim声明的Script级变量可用于脚本 中的所有过程,过程级变量只能用于过程中; Private语句声明的变量只能在声明该变量的脚本中 使用。 变量名遵循VBScript的标准命名规则 。 24 3.2.3 VBScript的变量 例如: Dim DegreesFahrenheit 声明多个变量时,使用逗号分隔变量 。 例如: Dim Top, Bottom, Left, Right 25 3.2.3 VBScript的变量 另一种方式是通过直接在脚本中使用变量名这 一简单方式隐式声明变量。这通常不是一个好习惯 ,因为这样有时会由于变量名被拼错而导致在运行 脚本时出现意外的结果。 因此,最好使用Option Explicit语句显式声明 所有变量,并将其作为脚本的第一条语句。 26 3.2.3 VBScript的变量 注意:Option Explicit语句的位置很特 殊,必须把Option Explicit语句作为一个 ASP网页的起始语句之一,即它必须出现在任 何HTML标识或其它VBScript命令之前,否则 ,该语句将被视为非法语句。 27 3.2.3 VBScript的变量 3. 变量的作用域与存活期 变量的作用域由声明它的位置决定。如果在 过程中声明变量,则只有该过程中的代码可以访问 或更改变量值,此时变量具有局部作用域并且是过 程级变量。如果在过程之外声明变量,则该变量可 以被脚本中所有过程所识别,称为Script级变量, 具有脚本级作用域。 28 3.2.3 VBScript的变量 变量存在的时间称为存活期。 Script级变量的存活期从被声明的一刻起,直 到脚本运行结束。 对于过程级变量,其存活期仅是该过程运行的 时间,该过程结束后,变量随之消失。在执行过程 时,过程级变量(局部变量)是理想的临时存储空 间。 29 3.2.3 VBScript的变量 4. 给变量赋值 使用赋值语句可以将指定的值赋给某个变量,赋值语 句的一般格式为: 名称=值 说明: 名称是任何变量或可写的属性;值可以是 任何数值或字符串文字、常数或表达式。 赋值语句是先计算(表达式),然后再赋值。将计 算所得的表达式值赋给赋值号“=”左边的变量或属性。 赋值号不是数学上的等号。 30 3.2.4 VBScript的数组变量 多数情况下,只需为声明的变量赋一个值。只包含一个 值的变量被称为标量变量。有时候,将多个相关值赋给一个 变量更为方便,因此可以创建包含一系列值的变量,称为数 组变量。 1. 数组的声明 数组变量和标量变量是以相同的方式声明的,唯一 的区别是声明数组变量时变量名后面带有括号( )。语法为: Dim | Private | Public | ReDim变量名(维数 ) ,变量名2(维数2) 31 3.2.4 VBScript的数组变量 说明: 维数是指数组变量的维数,最多可以声明60 维的数组。维数参数使用以下语法: 上界,上界2 数组的下界总是0。如下面的命令代码声明了一个 包含11个元素的一维数组:Dim A(10) 一般的,VBScript中数组元素的数目总是括号中显示 的数目加1。这种数组被称为固定大小的数组。 32 3.2.4 VBScript的数组变量 在数组中使用索引为数组的每个元素赋值。从0 到10,将数据赋给数组的元素,如下所示: A(0) = 256 A(1) = 324 A(2) = 100 . . . A(10) = 55 33 3.2.4 VBScript的数组变量 数组并不仅限于一维。数组的维数最大可以为 60。声明多维数组时用逗号分隔括号中每个表示数 组大小的数字。 在下例中,MyTable变量是一个有6行和11列的 二维数组: Dim MyTable(5,10) 在二维数组中,括号中第一个数字表示行的数 目,第二个数字表示列的数目。 34 3.2.4 VBScript的数组变量 2. 动态数组 也可以声明动态数组,即在运行脚本时大小发生变 化的数组。对动态数组的最初声明使用Dim语句或ReDim语句 ,括号中不包含任何数字。例如: Dim MyArray() ReDim AnotherArray() 要使用动态数组,必须随后使用 ReDim 确定维数和每一 维的大小。 35 3.2.4 VBScript的数组变量 在下例中,ReDim将动态数组的初始大小设置为25,而 后面的ReDim语句将数组的大小重新调整为30,同时使用 Preserve关键字在重新调整大小时保留数组的内容。 ReDim MyArray(25) ReDim Preserve MyArray(30) 重新调整动态数组大小的次数是没有任何限制的,但 是应注意:将数组的大小调小时,将会丢失被删除元素的 数据。 36 3.2.5 VBScript的常数 常数是具有一定含义的名称,用于代替数字或字符串, 其值从不改变。 声明常数的方法: Const 变量名数据的值 例如: Const MyString = “这是一个字符串。” Const MyAge = 49 注意:字符串文字包含在两个引号 (“ “) 之间。 37 3.2.5 VBScript的常数 日期文字和时间文字包含在两个井号 “#” 之 间。 例如: Const CutoffDate = #6-1-97# 38 3.2.6 VBScript的运算符与表达式 运算是对数据进行加工的过程,描述各种不同 运算的符号称为运算符,而参与运算的数据称为操 作数。表达式用来表示某个求值规则,它由运算符 和配对的圆括号将值、常数、变量、函数、对象等 操作数以合理的形式组合而成。 VBScript有一套完整的运算符,包括算术 运算符、比较运算符、连接运算符和逻辑运算符。 39 3.2.6 VBScript的运算符与表达式 1. 算术运算符 VBScript有8个算术运算符,见表3-6(p60 )。在这8个算术运算符中,除取负“-”是单目运 算符外,其他均为双目运算符。加(+)、减(-) 、乘(*)、浮点除法(/)、取负(-)、乘方( )运算的含义与数学中基本相同。 40 3.2.6 VBScript的运算符与表达式 说明: / 和 的区别:1 / 2 = 0.5,1 2 = 0。整除号 用于整数除法,在进行整除时,如果 参加运算的数据含有小数,首先将它们四舍五入, 使其成为整型数或长整型数(必须保证它们在- 2147483648.5和+2147483647.5之间),然后再进行 运算,其结果截尾成整型数。 41 3.2.6 VBScript的运算符与表达式 模运算符Mod用来求整型除法的余数。其 结果为第一个操作数整除第二个操作数所得 的余数。 例如:9 Mod 7的值为2,16 Mod 25的值 是16。若表达式为:25.58 Mod 6.91,则首先 把25.58和6.91分别取整为26和7,其值5。 42 3.2.6 VBScript的运算符与表达式 进行除法(包括整除)运算时,除数为0 或进行乘幂运算时指数为负数而底数为0时, 都会产生算术溢出的错误信息。 【例3-3】华氏温度和摄氏温度相互转换的网 页。 43 3.2.6 VBScript的运算符与表达式 2. 比较运算符 VBScript有7个比较运算符,用于比较表达 式,其说明见表3-7(p62)。 说明: Is运算符是对象引用比较运算符。它并不比较对 象或对象的值,而只是进行检查,判断两个对象引 用是否引用同一个对象。 44 3.2.6 VBScript的运算符与表达式 当比较两个表达式时,或许不容易确定比 较的表达式是作为数值或作为字符串。表3-8 (p62)描述了如何对表达式进行比较、以及 比较的结果,它取决于比较的子类型。 45 3.2.6 VBScript的运算符与表达式 3. 连接运算符 连接运算符用于连接两个或更多的字符串。 VBScript中的连接运算符 “&”,其语法格式为: 字符串1&字符串2&字符串3 还可以用“+”把两个字符串连接成一个字符串 。但是为了避免与算术加法运算符产生混淆,应该 用“&”号。 “&”会自动将非字符串子类型的数据 转换成字符串后再进行连接,而“+”则不能自动转 换。 46 3.2.6 VBScript的运算符与表达式 4. 逻辑运算符 VBScript提供的逻辑运算符有:And、Or、 Not、Xor、Eqv、Imp等6种,见表3-9(p63)。 说明: 逻辑运算符两侧若有数值数据出现,则将 数值数据转换为二进制数(补码形式)进行按位运 算。此时,1为真,0为假。 逻辑运算的结果见表3-10(真值表)(p63)。 47 3.2.6 VBScript的运算符与表达式 5. 运算符优先级 当表达式包含多个运算符时,将按预 定顺序计算每一部分,这个顺序被称为运算 符优先级。 首先计算算术运算符,然后计算比较运 算符,最后计算逻辑运算符。运算符的优先 级见表3-11(p64)。 48 3.2.6 VBScript的运算符与表达式 说明: 同级运算按照它们从左到右出现 的顺序进行计算。 可以用括号改变优先顺序,强令 表达式的某些部分优先计算。 括号内的运算总是优先于括号外 的运算,在括号之内,运算符的优先顺序不 变。 49 3.2.7 VBScript的常用函数 在VBScript中,有两类函数:内部函数和用户 定义函数。 v用户定义函数是由用户自己根据需要定义的函数。 v内部函数也称标准函数,VBScript提供了大量的内 部函数。在这些函数中,有些是通用的,有些则与 某种操作有关。这些函数可分为:转换函数、数学 函数、字符串函数、日期时间函数、随机函数。 50 3.2.7 VBScript的常用函数 1. 数学运算函数 数学运算函数用于各种数学运算。常 用的数学运算函数见表3-12(P65)。 函数说 明实例结果 Sin返回弧度的正弦Sin(1).841470984807897 Cos返回弧度的余弦Cos(1).54030230586814 Atn返回用弧度表示的反正切值Atn(1).785398163397448 51 3.2.7 VBScript的常用函数 函 数说 明实例结果 Tan返回弧度的正切Tan(1)1.5574077246549 Abs返回数的绝对值Abs(-2.4)2.4 Exp返回e的指定次幂Exp(1)2.71828182845905 Log返回一个数值的自然对数Log(1)0 Sgn返回数的符号值Sgn(-100)-1 Sqr返回数的平方根Sqr(16)4 Int返回不大于给定数的最大整数Int(3.6)3 Fix返回数的整数部分Fix(-3.6)-3 52 3.2.7 VBScript的常用函数 算术函数有几点说明: (1)函数具有返回值,应注意函数返回值的数据类 型。 (2)三角函数的运算都使用弧度。 (3)Fix(x)和Int(x)函数都是对数值型变量取整, 但对于正数和负数结果不同。 Fix(10.5)=10Int(10.5)=10 Fix(-10.5)=-10Int(-10.5)=-11 53 3.2.7 VBScript的常用函数 2. 字符串函数 VBscript提供了大量的字符串 函数,具有强大的字符串处理能力,见表3- 13(P65)。 54 3.2.7 VBScript的常用函数 函 数说 明 实例结果 Ltrim(C)返回删除字符串左端空格后的 字符串 LTrim(“MyName“)“MyName“ Rtrim(C)返回删除字符串右端空格后的 字符串 RTrim(“MyName“)“MyName“ Trim(C)返回删除字符串前导和尾随空 格后的字符串 Trim(“MyName“)“MyName“ Left(C,N)返回从字符串左边开始的指定 数目的字符 Left(“MyName“,2)“My“ Right(C,N)返回从字符串右端开始的指定 数目的字符 Right(“MyName“,4)“Name“ 55 3.2.7 VBScript的常用函数 函 数说 明 实例结果 Mid(C,N1,N2 ) 返回从字符串指定位置开始的指 定数目的字符 Mid (“MyName“,2,3)“yNa“ Len(C)返回字符串的长度Len(“MyName=王青“)9 Instr(N1,C1, C2,M) 返回字符串在给定的字符串中出 现的开始位置 InStr(7,“ASDFDFDFSD SF“, “DF“) 7 Space(N)返回由指定数目空格字符组成的 字符串 Space(5)“ String(N,C)返回包含一个字符重复指定次数 的字符串 String(2, “A“)“AA“ Lcase(C)返回以小写字母组成的字符串LCase(“Aab“)“aab“ Ucase(C)返回以大写字母组成的字符串UCase(“Aab“)“AAB“ 56 3.2.7 VBScript的常用函数 3. 日期和时间函数 时间和日期函数使程序能向用户显示日期和 时间,提供某个事件何时发生及持续时间长短的信 息。时间和日期函数见表3-14(P65)。 57 3.2.7 VBScript的常用函数 函数名返回类型功能例子运算结果 Day(日期)Integer返回日期,131的整数Day(#2004/3/15#) 15 Month(日期)Integer返回月份,112 的整数Month(#2004/3/15# ) 3 Year(日期)Integer返回年份Year(#2004/3/15# ) 2000 Weekday(日期)Integer返回星期几Weekday(#2004/3/15#) 2(星期天是第 一天) TimeDate返回当前系统时间Time 系统当前时间 DateDate返回系统日期Date 系统当前日期 NowDate返回系统日期和时间Now 系统当前日期 与时间 58 3.2.7 VBScript的常用函数 函数名返回 类型 功能例子运算 结果 Hour(时间)Integer返回钟点,0 23 的整数 Hour(#4:35:17 PM# )16 Minute(时间)Integer返回分钟,0 59 的整数 Minute(#4:35:17 PM#) 35 Second(时间 ) Integer返回秒钟,059 的整数 Second(#4:35:17 PM#) 17 59 3.2.7 VBScript的常用函数 4. 随机数语句和函数 在测试、模拟和游戏程序中,经常要使用随 机数,随机数语句和函数见表3-15(P65)。 函 数说 明实例结果 Rnd返回小于1且大于或等于0的随机 数 Rnd 01之间的随 机数 60 3.2.7 VBScript的常用函数 用Rnd(x)函数用于产生随机数,当x=0时产生与前一次相 同的随机数。如果不断地重复Rnd函数,会反复出现同一序列 的随机数,可以用Randomize语句消除这种情况。 语法:Randomize(x) 常用Rnd函数产生某个限定范围的随机整数,使用以下规 则:Int(上限 - 下限+1)*Rnd)+下限 例如:产生1199范围的随机整数: Int(99 - 11+1)*Rnd)+11 61 3.2.7 VBScript的常用函数 5. 数据类型转换函数 在VBScript中,一些数据类型可以自动转换 ,例如数字字符串可自动转换为数值型,但是,多 数类型不能自动转换,这就需要用类型转换函数来 显式地说明。转换函数见表3-16(P66)。 每个类型转换函数都可以强制将一个表达式转换 成某种特定数据子类型。 62 3.2.7 VBScript的常用函数 转换函数转换结果类型例子转换结果 CBool(x)BooleanCBool(0) False CByte(x)ByteCByte(125.5678) 126 CCur(x)CurrencyCCur(543.214588) 543.2146 CDate(x)Datecdate(5) #1900-1-4# CDbl(x)DoubleCDbl(“1922.54576”) 1922.54576 CInt(x)IntegerCInt(123.5) 123 63 3.2.7 VBScript的常用函数 转换函数转换结果类型 例子转换结果 CLng(x)LongCLng(25427.45) 25427 CSng(x)SingleCSng(75.3421115) 75.34211 CStr(x)StringCStr(437.324) “437.324“ CVar(x)VariantCVar(4534& “000“) “4534000“ CVErr(x)ErrorCVErr(2001) 自定义错误码 Str(x)Variant String Str(459) “459“ 64 3.2.7 VBScript的常用函数 例如: Area=CDbl(txtLength.Text*txtWidth.Text) 注意:如果传递给函数的参数超过转换目标数据类 型的范围,将发生错误。例如,如果想把Long型数 转换成Integer型数,那么,Long型数必须在 Integer数据类型的有效范围之内。 65 3.2.7 VBScript的常用函数 6. 测试函数 在VBScript中,还提供了一些测试函数,用 来测试传入参数的各种形态。测试函数见表3-17( P66)。 说明: Null值表示变量不包含有效数据。Null与Empty不 同,后者表示变量未经初始化。Null与零长度字符串 (“)也不同,零长度字符串往往指的是空串。 66 3.2.7 VBScript的常用函数 判断函数判断结果 类型 功能例子转换 结果 IsNumeric(x)Boolean判断是否是数值 型 IsNumberic(123. 4) True IsDateBoolean判断是否是日期型 IsDate(5)False IsObjectBoolean判断是否是对象IsObject(5)False IsNullBoolean判断是否是不包含 任何有效数据 IsNull(5)False IsEmptyBoolean判断变量是否已 被初始化 IsEmpty(a)是否被初 始化 67 3.2.7 VBScript的常用函数 使用IsNull函数可以判断表达式是否包含Null值。例如 :下面的示例利用IsNull函数决定变量是否包含Null: Dim MyVar, MyCheck MyCheck = IsNull(MyVar) 返回 False。 MyVar = Null 赋为 Null。 MyCheck = IsNull(MyVar) 返回 True。 MyVar = Empty 赋为 Empty。 MyCheck = IsNull(MyVar) 返回 False。 68 3.2.8 语句 1. 程序语句 VBScript程序中的一行代码称为一条程序 语句,简称为语句。语句是执行具体操作的指令, 每个语句行以回车(Enter)键结束。一个语句行的 长度最多不能超过1023个字符。 建立程序语句时必须遵从的构造规则称为 语法。 69 3.2.8 语句 2. 语句的书写规则 (1) 一行中的多条语句 一般情况下,输入程序时要求一行写一个语 句。但是也可以使用复合语句行,即把几个语句放 在一个语句行中,语句之间用冒号“:”隔开。例如 : Text1.Text = “Hello“ : Red = 255 : A = Red 70 3.2.8 语句 (2) 语句的续行 当一条语句很长时,在记事本窗口阅读程序 时将不便查看,使用滚动条又比较麻烦。这时,就 可以使用续行功能,用续行符“ _”将一个较长的 语句分为多个程序行。续行符只能出现在行尾。例 如: strMyStr=“当前用户为:“ & _ strUsername 71 3.2.8 语句 3. 语句格式中的符号约定 为了便于解释语句、方法和函数,本教程语句、 方法和函数格式中的符号采用统一约定。在各语句 、方法、函数的语法格式和功能说明中,以尖括号 、方括号 、花括号 、竖线|、逗号加省略号 ,.、省略号.作为专用符号,这些符号的含义见表3- 18(P67)。 72 3.2.8 语句 注意:这些专用符号和其中的提示,不 是语句行或函数的组成部分。在输入具体命 令或函数时,上面的符号均不可作为语句中 的成分输入计算机,它们只是语句、函数格 式的书面表示。例如: If条件Then 语句1 Else语句2 73 3.3 VBScript结构化程序设计 结构化程序设计有三种基本结构:顺序 结构、选择结构、循环结构。 3.3.1 VBScript的选择结构 3.3.2 VBScript的循环结构 3.3.3 VBScript的过程 74 3.3.1 VBScript的选择结构 VBScript中选择结构语句有:IfThenElse、 Select Case语句,分别实现单条件选择结构和多分 支条件选择结构。 1. 单条件选择结构 单条件选择结构是最常用的双分支选择结构 ,其特点是:所给定条件(条件表达式)的值如果为 真,则执行a1块;如果为假则执行a2块。 75 3.3.1 VBScript的选择结构 (1) 行If语句 实现单条件选择结构最简单的语句是行If语 句,其语法格式为: If条件Then 语句1 Else语句2 【例3-4】下面的代码测试输入的数据是否有效的数 值。 76 3.3.1 VBScript的选择结构 (2) 块If语句 块If语句又称为多行If语句,其语法结构为: If条件1Then 语句列1 Else 语句列2 End If 【例3-5】将例3-4中的行If语句改为使用块If语句。 77 3.3.1 VBScript的选择结构 (3) If语句的嵌套 If语句可以嵌套使用,即在If语句的操作块 (语句列1或语句列2)中使用If语句。 78 3.3.1 VBScript的选择结构 【例3-6】铁路托运行李,从甲地到乙地,规定每张客票托运 费计算方法是:行李重量不超过50公斤时,每公斤0.25元,超 过50公斤而不超过100公斤时,其超过部分每公斤0.35元,超 过100公斤时,其超过部分每公斤0.45元。编写程序,输入行 李重量,计算并输出托运的费用。 分析:设行李重量为w公斤,应付运费为x元,则运费公式为: 79 3.3.1 VBScript的选择结构 (4) If语句的嵌套格式 当代码中出现多层If语句嵌套时,将使程序 冗长而不便阅读。为此VBScript提供了带ElseIf的If 语句来处理当条件为假时又内嵌If语句的情形,以使 程序简化易写。 80 3.3.1 VBScript的选择结构 其语法格式为: If条件1Then 语句列1 ElseIf条件2Then 语句列2 . Else 其他语句列 End If 81 3.3.1 VBScript的选择结构 【例3-7】某百货公司为了促销,采用购物打折扣的优惠办法 。每位顾客一次购物:(1) 在1000元以上者,按九五折优惠。 (2) 在2000元以上者,按九折优惠。 (3) 在3000元以上者, 按八五折优惠。(4) 在5000元以上者,按八折优惠。 分析:设购物款数为x元,优惠价为y元,则优惠付款公式 为: 82 3.3.1 VBScript的选择结构 2. 多分支条件选择结构 多分支选择结构的特点是:从多个选择结构中,选择 第一个条件为真的路线作为执行的路线。Select Case语法格 式: Select Case测试条件 Case表达式表1 语句列1 Case表达式表2 语句列2 . Case Else 其他语句列 End Select 83 3.3.1 VBScript的选择结构 说明: 测试条件为必要参数,是任何数值或字符表达式。 在Case子句中,表达式表为必要参数,用来测试其中 是否有值与测试条件相匹配。当使用多个表达式的列表 时,表达式与表达式之间要用逗号(,)隔开。 语句列 为可选参数,是一条或多条语句,当表 达式表中有值与测试条件相匹配时执行。 Case Else子句用于指明其他语句列,当测试条件和所有 的Case子句表达式表中的值都不匹配时,则会执行这些 语句。【例3-8】例3-7中的If语句可以改为Select语句。 84 3.3.2 VBScript的循环结构 循环是指在程序设计中,从某处开始有规律地反复执行 某一程序块的现象,重复执行的程序块称为“循环体”。 在VBScript中可使用下列循环语句: v Do.Loop:当(或直到)条件为 True 时循环。 v While.Wend: 当条件为 True 时循环。 v For.Next: 指定循环次数,使用计数器重复运行语句 。 v For Each.Next: 对于集合中的每项或数组中的每个元 素,重复执行一组语句。 85 3.3.2 VBScript的循环结构 DoLoop语句有两种语法形式,分别是:前测型循环结 构与后测型循环结构。 (1) 前测型DoLoop循环 前测型DoLoop循环结构,首先判断条件,根据条 件决定是否执行循环,执行循环的最少次数为0。其语法为 : Do While | Until 条件 语句列1 Exit Do 语句列2 Loop 86 3.3.2 VBScript的循环结构 v Exit Do 语句用于退出 Do.Loop 循环。 v Do While.Loop 语句,当条件为 True 时或条件变为 True 之前,重复执行语句块。 v Do Until.Loop 语句,当条件为假时,重复执行语句块 。条件为真时,跳出循环。 【例3-9】求累加和1 + 2 + 3 + 100。 分析:采用累加的方法,用变量s来存放累加的和( 开始为0),用变量n来存放“加数”(加到s中的数)。这 里n又称为计数器,从1开始到100为止。 87 3.3.2 VBScript的循环结构 【例3-10】输入一个正整数,利用“当型”循环判 断是否素数。 分析:所谓“素数”是指除了1和该数本身 ,不能被任何整数整除的数。 判断一个自然数n(n3)是否素数,只要依次 用2n作除数去除n,若n不能被其中任何一个数 整除,则n即为素数。 88 3.3.2 VBScript的循环结构 (2) 后测型DoLoop循环 首先执行循环体,然后判断条件,根据条件决定是 否继续执行循环,因此执行循环的最少次数为1。其语法为 : Do 语句列1 Exit Do 语句列2 Loop While | Until 条件 89 3.3.2 VBScript的循环结构 【例3-11】输入两个正整数,求它们的最大公约数。 分析:求最大公约数可以用“辗转相除法”,如下: 以大数m作被除数,小数n做除数, 相除后余数 为r。 若r0,则mn,nr,继续相除得到新的r。若 仍有r0,则重复此过程,直到r = 0为止。 最后的m就是最大公约数。 90 3.3.2 VBScript的循环结构 2. While.Wend语句 当循环(While.Wend)比较简单,其特点是, 只要指定的条件为True,则会重复执行一系列的语 句。其语法格式为: While条件 语句列 Wend 91 3.3.2 VBScript的循环结构 【例3-12】利用下述公式计算圆周率的近似值: 当最后一项的绝对值小于0.000001时停止计算。 注意:程序运行时间可能很长。 92 3.3.2 VBScript的循环结构 3. For.Next语句 For循环变量=初值To终值 Step步长 语句列1 Exit For 语句列2 Next 循环变量 93 3.3.2 VBScript的循环结构 说明: 循环变量为必要参数,是用做循环 计数器的数值变量,这个变量不能是数组元素。 初值和终值都是必要参数,如果没有 指定步长,则缺省值为1。 步长可以是正数或负数。步长参数值决定 循环的执行情况:如果步长的值为正数,则必须初 值 = 终值。 94 3.3.2 VBScript的循环结构 可以在循环中的任何位置放置任意个Exit For 语句,随时退出循环。 如果省略Next语句中的 循环变量,将不影响 循环的执行。但如果Next语句在它相对应的For语 句之前出现,则会产生错误。 在循环中改变循环变量的值,将会使程序代码 的阅读和调试变得困难。 95 3.3.2 VBScript的循环结构 【例3-13】“同构数”是指这样的整数:它恰好出 现在其平方数的右端,例如1和5就是这样的数。试 找出19999之间的全部“同构数”。 分析:1位同构数n应满足条件:n = n2 Mod 10, 2位同构数n应满足条件:n = n2 Mod 100, 3位同构数n应满足条件:n = n2 Mod 1000, 4位同构数n应满足条件:n = n2 Mod 10000。 96 3.3.2 VBScript的循环结构 4. For EachNext循环语句 For Each.Next循环与For.Next循环类似。For Each.Next不是将语句运行指定的次数,而是对于数组中 的每个元素或对象集合中的每一项重复一组语句。这在不 知道集合中元素的数目时非常有用。其语法格式为: For Each元素In名称 语句列1 Exit For 语句列2 Next 元素 97 3.3.2 VBScript的循环结构 说明: 元素是用来枚举集合或数组中所有元素的变量。对 于集合,元素可能是Variant变量、通用Object变量或 任意指定的Automation对象变量。对于数组,元素只 能是Variant变量。 名称是指对象集合或数组的名称。 【例3-14】在窗体中有若干文本框,在代码中创建 Dictionary对象,并赋值。然后将Dictionary对象的内容 分别放置在多个文本框中。 98 3.3.2 VBScript的循环结构 5. 循环的嵌套 通常把循环体内不含循环语句的循环称为单重(层 )循环,而把循环体内含有循环语句的循环称为多重循环 ,或称循环的嵌套。上面介绍的循环结构既可以单独嵌套 ,也可以互相嵌套,但是要注意内外循环不能交叉。 【例3-15】求从1000到1100之间的所有素数。 分析:例3-10介绍了利用DoLoop循环判断素数的方法, 现在只需对10001100之间的各整数依次测试即可。 99 3.3.3 VBScript的过程 在VBScript中,过程被分为两类:Sub过程和 Function过程。 1. Sub过程 VBScript的Sub过程分为事件过程和通用过 程两种。事件过程是当发生某个事件时,对该事件 做出响应的程序段;通用过程则是独立于事件过程 的程序段,可以被其他过程调用。 100 3.3.3 VBScript的过程 Sub过程是包含在Sub和End Sub语句之间的 一组VBScript语句,执行操作但不返回值。 (1) Sub过程的定义 PublicDefault|Private Sub过程名(形参表 ) 语句列 Exit Sub 语句列 End Sub 参数说明见表3-19(p81)。 101 3.3.3 VBScript的过程 其中形参表中出现的参数称为形式参数, 简称为形参。 形参表中形参的语法为: ByVal | ByRef变量名( ) 其参数说明见表3-20(p82)。 102 3.3.3 VBScript的过程 (2) Sub过程的调用 调用Sub过程有两种方法: v使用Call语句: Call过程名( 实参表 ) v直接使用过程名: 过程名实参表 103 3.3.3 VBScript的过程 说明: 实参表是实际参数列表,参数与参数之间要用逗号 分隔。 当用Call语句调用执行过程时,其过程名后必须加括号, 若有参数,则参数必须放在括号之内。 若省略Call关键字,则过程名后不能加括号,若有参数, 则参数直接跟在过程名之后,参数与过程名之间用空格隔开 ,参数与参数之间用逗号分隔。 104 3.3.3 VBScript的过程 【例3-16】编制判断素数的Sub过程,验证哥德巴赫猜想:一 个不小于6的偶数可以表示为两个素数之和。例如:6 = 3 + 3, 8 = 3 + 5,10 = 3 + 7, 分析:假设有一个偶数n,将它表示为两个整数a和b的和, 即n = a + b。如果n = 10,先令a = 2,判断2是否是素数,经检 查2是素数,由于b = n - a,故b的值为8,经检查8不是素数, 则这一组合(10 = 2 + 8)不合要求。再使a加1,即a = 3,经检 查3是素数,b = n a =

温馨提示

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

评论

0/150

提交评论