《工信版(中职)可视化编程应用——Visual Basic模块2VB程序设计语言基础电子课件.ppt》由会员分享,可在线阅读,更多相关《工信版(中职)可视化编程应用——Visual Basic模块2VB程序设计语言基础电子课件.ppt(119页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Y CF(中职)可视化编程应用Visual Basic 模块2 VB 程序设计语言基础电子课件模块2 VB程序设计语言基础 任务1 VB中的数据与运算 任务2 VB函数 任务3 输入与输出 任务4 程序的流程控制 返回任务1 VB中的数据与运算 数据与数据运算是任何一种程序设计语言编程的基础。数据与数据运算是任何一种程序设计语言编程的基础。VB VB提供了丰富 提供了丰富的数据类型和运算方式以适应不同的场合。的数据类型和运算方式以适应不同的场合。2.1.1数值型数据 VB 6.0 VB 6.0的数据类型比较丰富,可以分为两大类 的数据类型比较丰富,可以分为两大类:基本数据类型和用户 基本数据类
2、型和用户自定义类型。自定义类型。表 表2-1 2-1列示了 列示了VB 6.0 VB 6.0使用的基本数据类型。使用的基本数据类型。基本数据类型是系统定义的标准数据类型,可以直接使用。分为 基本数据类型是系统定义的标准数据类型,可以直接使用。分为6 6类 类:数值型,日期型,逻辑型,字符型,对象型和变体型。数值型,日期型,逻辑型,字符型,对象型和变体型。下一页 返回任务1 VB中的数据与运算 数值型数据分为整型和实型两类。整型数据分为整数和长整数,实型 数值型数据分为整型和实型两类。整型数据分为整数和长整数,实型数据分为单精度和双精度数据。有时把货币型和字节型数据也归为数 数据分为单精度和双精
3、度数据。有时把货币型和字节型数据也归为数值型数据。值型数据。(1)(1)整数。整数是不带小数点,范围在 整数。整数是不带小数点,范围在-3276832767-3276832767之间,在机器内 之间,在机器内使用 使用2 2个字节存储。在 个字节存储。在VB 6.0 VB 6.0中数尾常加 中数尾常加“%”“%”表示整型数据,也可省 表示整型数据,也可省略。如 略。如-34,78%-34,78%。(2)(2)长整数。长整数可以超过整数 长整数。长整数可以超过整数-3276832767-3276832767范围,可以是 范围,可以是-21474836482147483647 2147483648
4、2147483647之间的不带小数点的数,在机器内用 之间的不带小数点的数,在机器内用4 4个字节 个字节存储。在 存储。在VB 6.0 VB 6.0中数尾常加 中数尾常加:“&”:“&”表示长整型数据。如 表示长整型数据。如-334&,-334&,67785649&67785649&。(3)(3)单精度数。单精度数是带小数点的实数,有效数字为 单精度数。单精度数是带小数点的实数,有效数字为7 7位,在机器 位,在机器内用 内用4 4个字节存储。通常以指数形式表示,指数部分用 个字节存储。通常以指数形式表示,指数部分用“E”“E”或 或“P”“P”表示。在 表示。在VB 6.0 VB 6.0中
5、数尾常加 中数尾常加“!”“!”表示单精度数据,也可省略。如 表示单精度数据,也可省略。如-234.78,2.67 e+3 234.78,2.67 e+3。上一页 下一页 返回任务1 VB中的数据与运算(4)(4)双精度数。双精度数也是带小数点的实数,有效数字为 双精度数。双精度数也是带小数点的实数,有效数字为15 15或 或16 16位,位,在机器内用 在机器内用8 8个字节存储。通常以指数形式表示,指数部分用 个字节存储。通常以指数形式表示,指数部分用“D”“D”或 或“d”“d”表示。在 表示。在VB 6.0 VB 6.0中数尾常加 中数尾常加“#”“#”表示双精度数据,也可省略。表示双
6、精度数据,也可省略。如 如-374.778,5.678D+2-374.778,5.678D+2,-2.67 e+3 0-2.67 e+3 0。(5)(5)货币型数据。货币型数据是为计算货币而设置的定点实数或整数,货币型数据。货币型数据是为计算货币而设置的定点实数或整数,它的精度要求较高,规定小数点后有 它的精度要求较高,规定小数点后有4 4位,在机器内用 位,在机器内用8 8个字节存储。个字节存储。在 在VB 6.0 VB 6.0中数尾常加 中数尾常加“”“”表示货币型数据。如 表示货币型数据。如3.4 3.4,565 565。(6)(6)字节型数据。字节型数据是范围在 字节型数据。字节型数据
7、是范围在0255 0255之间的无符号整数,在机 之间的无符号整数,在机器内用一个字节存储。器内用一个字节存储。上一页 下一页 返回任务1 VB中的数据与运算 2.2.日期型数据 日期型数据 日期型数据是为表示日期设置的,范围在公元 日期型数据是为表示日期设置的,范围在公元100 100年 年1 1月 月1 1日 日9999 9999年 年12 12月 月31 31日,时间是 日,时间是00 00:00 00:00 23 00 23:59 59:59 59内的数据,在机器内用 内的数据,在机器内用8 8个字 个字节存储。口期型数据必须用 节存储。口期型数据必须用“#”“#”括起来,如 括起来,
8、如:#1986-12-30#:#1986-12-30#、#6#6:23 23:25 pm#25 pm#。3.3.逻辑型数据 逻辑型数据 逻辑型数据是用来表示逻辑判断结果的,只有真 逻辑型数据是用来表示逻辑判断结果的,只有真(True)(True)和假 和假(False)(False)两个值,在机器内用 两个值,在机器内用2 2个字节存储。当在使用中数值型数据要转换为 个字节存储。当在使用中数值型数据要转换为逻辑型数据时,非 逻辑型数据时,非0 0变为 变为True;0 True;0变为 变为False False。反之,逻辑型数据转换为。反之,逻辑型数据转换为数值型数据时,数值型数据时,Tru
9、e True变为 变为-1,False-1,False变为 变为0 0。上一页 下一页 返回任务1 VB中的数据与运算 4.4.字符型数据 字符型数据 字符型数据是用双引号括起来的一串字符,用来定义一个字符序列。字符型数据是用双引号括起来的一串字符,用来定义一个字符序列。在机器中一个字符用 在机器中一个字符用1 1个字节存储。在默认字符状态下,它是变长字 个字节存储。在默认字符状态下,它是变长字符串,也可以声明为定长字符串,如果字符个数少于固定长度,自动 符串,也可以声明为定长字符串,如果字符个数少于固定长度,自动用空格将不足部分补齐 用空格将不足部分补齐;否则,会自动截去多余部分的字符。否则
10、,会自动截去多余部分的字符。5.5.对象型数据 对象型数据 对象型数据主要以变量形式存在,可以引用应用程序中的对象。在机 对象型数据主要以变量形式存在,可以引用应用程序中的对象。在机器内用 器内用4 4个字节存储。个字节存储。6.6.变体型数据 变体型数据 变体型是一种通用的,可变的数据类型,它可以表示以上任何一种数 变体型是一种通用的,可变的数据类型,它可以表示以上任何一种数据类型。它是声明变量时的默认类型。可以通过 据类型。它是声明变量时的默认类型。可以通过VarType VarType函数来检测 函数来检测变体型变量的实际数据类型,如 变体型变量的实际数据类型,如表 表2-2 2-2所示
11、 所示)。上一页 下一页 返回任务1 VB中的数据与运算【例【例2-1 2-1】Dim a As Variant Dim a As Varianta=56 a=56 a a为整型 为整型a=a=china china a a为字符型 为字符型应该尽量少用变体型数据,以避免发生错误。应该尽量少用变体型数据,以避免发生错误。上一页 下一页 返回任务1 VB中的数据与运算2.1.2有定义数据类型 除了上述基本类型外,用户还可以根据需要用 除了上述基本类型外,用户还可以根据需要用Type Type语句定义自己的数 语句定义自己的数据类型。据类型。格式 格式:Type Type数据类型名 数据类型名 元
12、素名 元素名As As类型名 类型名 元素名 元素名As As类型名 类型名 元素名 元素名As As类型名 类型名 End Type End Type 其中,数据类型名为自定义数据类型名,元素名为自定义数据类型中 其中,数据类型名为自定义数据类型名,元素名为自定义数据类型中的一个成员,类型名为上述基本类型名或自定义数据类型名。的一个成员,类型名为上述基本类型名或自定义数据类型名。上一页 下一页 返回任务1 VB中的数据与运算【例【例2-2 2-2】定义一个名为】定义一个名为Employee(Employee(职工 职工)的类型,其中包括职工号、姓 的类型,其中包括职工号、姓名、年龄、电话和住
13、址。名、年龄、电话和住址。Type Employee Type Employee EmpNo As Integer EmpNo As Integer Name As String*10 Name As String*10 长度为 长度为10 10 Age As Integer Age As Integer Tel As String*10 Tel As String*10 Address As String*20 Address As String*20 End Type End Type 注意 注意:自定义类型中的元素为字符型时,必须为定长字符串。自定义类型中的元素为字符型时,必须为定长字符
14、串。自定义数据类型类似于 自定义数据类型类似于C C语言中的结构体,因此通常把这种类型称为 语言中的结构体,因此通常把这种类型称为记录型。记录型。这样,就可以定义一个 这样,就可以定义一个Employee Employee类型的变量了。类型的变量了。Dim Em PAs Employee Dim Em PAs Employee 用变量元素的形式引用各成员 用变量元素的形式引用各成员上一页 下一页 返回任务1 VB中的数据与运算2.1.3常量与变量 1.1.常量 常量 程序运行过程中,其值始终不变的量称为常量。在 程序运行过程中,其值始终不变的量称为常量。在VB 6.0 VB 6.0中,常量有
15、中,常量有直接常量和符号常量两类。直接常量和符号常量两类。1)1)直接常量 直接常量 直接常量是直接以数据形式表示的常量。包括字符型常量,数值型常 直接常量是直接以数据形式表示的常量。包括字符型常量,数值型常量,逻辑型常量和口期性常量,如 量,逻辑型常量和口期性常量,如10,56&,22.4e4,“Name”,True 10,56&,22.4e4,“Name”,True等。等。在 在VB 6.0 VB 6.0中还可以使用八进制和十六进制形式表示直接常量。八进制 中还可以使用八进制和十六进制形式表示直接常量。八进制数以 数以&0&0打头,十六进制数以 打头,十六进制数以&H&H打头,如 打头,如
16、&067,&H7A34&067,&H7A34等。等。上一页 下一页 返回任务1 VB中的数据与运算 2)2)符号常量 符号常量 符号常量是用符号表示的常量,它可以取代多次出现的很大的数字或 符号常量是用符号表示的常量,它可以取代多次出现的很大的数字或很长的字符串。符号常量分为系统定义的符号常量和用户定义的符号 很长的字符串。符号常量分为系统定义的符号常量和用户定义的符号常量。常量。(1)(1)系统定义的符号常量 系统定义的符号常量:系统定义的符号常量是由系统或引用的对象 系统定义的符号常量是由系统或引用的对象提供的。它位于对象库中,使用时可以在 提供的。它位于对象库中,使用时可以在“对象浏览器
17、 对象浏览器”窗口中查看。窗口中查看。如 如VB 6.0 VB 6.0中经常使用 中经常使用VBNormal,VBMinimized VBNormal,VBMinimized和 和VBMaximized VBMaximized来代 来代替表示窗体状态的 替表示窗体状态的0(0(正常窗口 正常窗口),1(),1(最小化窗口 最小化窗口)和 和2(2(最大化窗口 最大化窗口),这,这样使用非常直观。样使用非常直观。(2)(2)用户定义的符号常量 用户定义的符号常量:用户定义的符号常量是用户使用 用户定义的符号常量是用户使用Const Const语句定 语句定义的符号常量。义的符号常量。上一页 下一
18、页 返回任务1 VB中的数据与运算 格式 格式:Public|Private Const:Public|Private Const As As=其中 其中:“”:“”为可选项,为可选项,“”“”为必选项,为必选项,I”I”表示只取其中之一,表示只取其中之一,“”“”表示若干项中间用 表示若干项中间用“,”分隔。例如 分隔。例如:Const Pi=3.141592653589 Const Pi=3.141592653589 Const Date=1/1/68 Const Date=1/1/68 Const M As Integer=45 Const M As Integer=45,D=tea D
19、=tea 注意 注意:符号常量一经声明只能引用,不能改变。符号常量一经声明只能引用,不能改变。上一页 下一页 返回任务1 VB中的数据与运算 2.2.变量 变量 在程序运行过程中,其值可以改变的量称为变量。变量由名字和数据类 在程序运行过程中,其值可以改变的量称为变量。变量由名字和数据类型确定。型确定。1)1)变量的命名规则 变量的命名规则 变量名由字母,数字和下画线组成,第一个字符必须是字母或汉字,最 变量名由字母,数字和下画线组成,第一个字符必须是字母或汉字,最后一个字符可以是类型说明符,并且组成变量名的字符数不得超过 后一个字符可以是类型说明符,并且组成变量名的字符数不得超过255 25
20、5个。为了增加程序的可读性,可在变量名前加上表示变量数据类型的前 个。为了增加程序的可读性,可在变量名前加上表示变量数据类型的前缀。例如,缀。例如,strName(strName(字符型 字符型),intAge(intAge(整型 整型),dlmDala(dlmDala(日期型)等。日期型)等。注意 注意:变量名不得使用 变量名不得使用VB 6.0 VB 6.0的保留字 的保留字(符号常量与后面讲到的数组、函 符号常量与后面讲到的数组、函数及过程的命令规则完全相同 数及过程的命令规则完全相同)。上一页 下一页 返回任务1 VB中的数据与运算 2)2)变量声明 变量声明 变量声明是用语句来定义变
21、量的数据类型,以此来确定所占存储单元 变量声明是用语句来定义变量的数据类型,以此来确定所占存储单元的大小。的大小。(1)(1)用 用Dim Dim和 和Static Static声明变量。声明变量。格式 格式:Private|Public|Dim|Static:Private|Public|Dim|StaticAsAs 1,AsAs 2 其中 其中:Private I Public Private I Public为模块或全局变量,属于变量的作用域范畴。为模块或全局变量,属于变量的作用域范畴。Dim Dim声明的变量为动态变量,其值在程序运行结束时不保留。声明的变量为动态变量,其值在程序运行结
22、束时不保留。Static Static声明的变量为静态变量,会保留上次调用结束时的值。声明的变量为静态变量,会保留上次调用结束时的值。例如 例如:Private Sub x Click()Private Sub x Click()Static a As Integer Static a As Integer Dim h As Integer Dim h As Integer a=a+1 a=a+1 h=h+1 h=h+1 End Sub End Sub 上一页 下一页 返回任务1 VB中的数据与运算 当第一次调用此过程时,当第一次调用此过程时,a a,b b默认为 默认为0 0,故执行完该过程
23、的最后一条,故执行完该过程的最后一条语句后,语句后,a a,b b均变为 均变为1 1。当第二次调用此过程时,。当第二次调用此过程时,a a变为 变为1 1,而,而b b又恢 又恢复为 复为0 0,故执行完此过程的最后一条语句后,故执行完此过程的最后一条语句后,a a的值为 的值为2,b 2,b的值为 的值为1 1。这。这就是因为 就是因为a a是静态变量,调用结束后的值会保存下来 是静态变量,调用结束后的值会保存下来;而 而b b是动态变量,是动态变量,调用后的值会释放,即每次调用此过程时,调用后的值会释放,即每次调用此过程时,b b的初始值均为 的初始值均为0 0。(2)(2)用省略 用省
24、略As As的 的Dim Dim语句声明变量为变体型。语句声明变量为变体型。格式 格式:Dim:Dim变量名 变量名(3)(3)用类型符声明变量。用类型符声明变量。格式 格式:变量名 变量名 例如,例如,strName$,sngFloat strName$,sngFloat和 和lngNum&lngNum&。上一页 下一页 返回任务1 VB中的数据与运算 3.3.变量的作用域 变量的作用域 变量的作用域即变量的作用范围。一个变量的作用范围有多大取决于 变量的作用域即变量的作用范围。一个变量的作用范围有多大取决于它是了什么级别的变量。从作用域来讲,变量有局部变量、窗体和模 它是了什么级别的变量。
25、从作用域来讲,变量有局部变量、窗体和模块级变量以及全局变量之分。块级变量以及全局变量之分。1)1)局部变量 局部变量 在一个过程内部声明的变量是局部变量,又称为过程变量。这种变量 在一个过程内部声明的变量是局部变量,又称为过程变量。这种变量只在声明它的过程内有效。例如 只在声明它的过程内有效。例如:Private Sub Form1 Click()Private Sub Form1 Click()Dim a As Integer Dim a As Integer End Sub End Sub 此时,此时,a a为局部变量,只在该过程内有效。因此,在不同过程中,可 为局部变量,只在该过程内有效
26、。因此,在不同过程中,可以使用相同的变量名,它们互不干扰。这充分体现了它的独立性。以使用相同的变量名,它们互不干扰。这充分体现了它的独立性。上一页 下一页 返回任务1 VB中的数据与运算 2)2)窗体和模块级变量 窗体和模块级变量 在一个窗体或模块内,而在过程外声明的变量为窗体或模块级变量。在一个窗体或模块内,而在过程外声明的变量为窗体或模块级变量。这种变量在整个窗体或模块中有效,本窗体或模块内的所有过程都可 这种变量在整个窗体或模块中有效,本窗体或模块内的所有过程都可以使用。若在其他窗体或模块中使用,必须以 以使用。若在其他窗体或模块中使用,必须以Public Public声明此变量,否 声
27、明此变量,否则,其他模块或窗体不能使用,但在使用时必须指明该变量所在的对 则,其他模块或窗体不能使用,但在使用时必须指明该变量所在的对象。这也是它与全局变量的区别。例如,在窗体 象。这也是它与全局变量的区别。例如,在窗体Form 1 Form 1中声明变量 中声明变量a(Public a As Integer)a(Public a As Integer),在另一窗体,在另一窗体Form2 Form2中使用时,必须写成 中使用时,必须写成Form1.Form1.a a,而不能直接写成,而不能直接写成a a,因为只有全局变量才可以直接使用。,因为只有全局变量才可以直接使用。注意 注意:以 以Pri
28、vate Private或 或Dim Dim声明的变量是窗体和模块级变量,只能在本模 声明的变量是窗体和模块级变量,只能在本模块中使用。块中使用。3)3)全局变量 全局变量 在模块文件中声明的变量为全局变量。这种变量在任何模块或窗体中 在模块文件中声明的变量为全局变量。这种变量在任何模块或窗体中均有效,但必须用 均有效,但必须用Public Public声明,即 声明,即Public b As Single Public b As Single,如,如图 图2 2一 一1 1所示。所示。上一页 下一页 返回任务1 VB中的数据与运算2.1.4运算符和表达式 运算符是描述不同运算的符号,在 运算
29、符是描述不同运算的符号,在VB 6.0 VB 6.0中有赋值运算符、算术运算 中有赋值运算符、算术运算符、连接运算符、关系运算符和逻辑运算符。参与运算的量称为操作 符、连接运算符、关系运算符和逻辑运算符。参与运算的量称为操作数。由运算符将参与运算的量 数。由运算符将参与运算的量(常量、变量、函数等 常量、变量、函数等),即操作数连接,即操作数连接起来的式子为表达式。表达式从运算符角度又可分为算术表达式、连 起来的式子为表达式。表达式从运算符角度又可分为算术表达式、连接表达式、关系表达式和逻辑表达式。接表达式、关系表达式和逻辑表达式。1.1.赋值运算符 赋值运算符 赋值运算符用于给变量、数组或对
30、象的属性赋值,用 赋值运算符用于给变量、数组或对象的属性赋值,用“=”“=”表示。表示。格式 格式:Variable=:Variable=表达式 表达式 其中 其中:Variable:Variable可以是变量、数组或对象的属性。表达式可以是常量、可以是变量、数组或对象的属性。表达式可以是常量、变量或表达式,但必须有确定的值。变量或表达式,但必须有确定的值。上一页 下一页 返回任务1 VB中的数据与运算例如 例如:Dim a As String*5 Dim a As String*5a=China a=China 将 将China China赋给字符型变量 赋给字符型变量a acmdDispl
31、ay.Caption=cmdDisplay.Caption=显示文本 显示文本 将 将 显示文本 显示文本 赋给按钮 赋给按钮cmdDisplay cmdDisplay的 的Caption Caption属性 属性注意 注意:赋值符两端的数据类型应该匹配,不匹配时,应进行转换。赋值符两端的数据类型应该匹配,不匹配时,应进行转换。上一页 下一页 返回任务1 VB中的数据与运算 2.2.算术运算符 算术运算符 算术运算符主要用于算术运算。算术运算符主要用于算术运算。VB 6.0 VB 6.0中有 中有8 8个算术运算符,如表 个算术运算符,如表2-3 2-3所示。所示。说明 说明:(1)(1)算术
32、运算符的操作数可以是数值型、数字字符型或逻辑型,数字字 算术运算符的操作数可以是数值型、数字字符型或逻辑型,数字字符型或逻辑型数据自动转换为数值型后再参与运算。符型或逻辑型数据自动转换为数值型后再参与运算。(2)(2)整除运算是直接取整而不进行四舍五入的操作。如果参加整除运算 整除运算是直接取整而不进行四舍五入的操作。如果参加整除运算的操作数是实数,按四舍五入的规则将其改变为整数后,再参与运算,的操作数是实数,按四舍五入的规则将其改变为整数后,再参与运算,如 如6.72 6.72的结果是 的结果是3 3。(3)(3)取模运算的操作数可以是实数,先按四舍五入的规则将其变为整数 取模运算的操作数可
33、以是实数,先按四舍五入的规则将其变为整数后,再参与运算,如 后,再参与运算,如12.35 Mod 4.7 12.35 Mod 4.7的结果为 的结果为2 2。(4)(4)优先级是多个运算符出现在一个表达式时的运算顺序,优先级高的 优先级是多个运算符出现在一个表达式时的运算顺序,优先级高的先进行运算,优先级低的后进行运算。序列号越小优先级越高。先进行运算,优先级低的后进行运算。序列号越小优先级越高。上一页 下一页 返回任务1 VB中的数据与运算 3.3.连接运算符 连接运算符 连接运算符主要用于两个字符串的连接,如 连接运算符主要用于两个字符串的连接,如表 表2-4 2-4所示。所示。说明 说明
34、:(1)“&”(1)“&”连接的操作数为非字符型时,将其转换为字符型再连接如 连接的操作数为非字符型时,将其转换为字符型再连接如 1234&5 1234&5 的结果为 的结果为 12345 12345。(2)“+”(2)“+”连接的操作数为字符型时实现连接,其中一个为数字字符型,连接的操作数为字符型时实现连接,其中一个为数字字符型,另一个为字符型,或者两个都为字符型时,实现算术加法运算,前者 另一个为字符型,或者两个都为字符型时,实现算术加法运算,前者只是将数字字符型变为数值型。若其中一个为数值型,另一个为非数 只是将数字字符型变为数值型。若其中一个为数值型,另一个为非数字字符型时,则会出错,
35、如 字字符型时,则会出错,如 12A+5 12A+5 则报错。则报错。上一页 下一页 返回任务1 VB中的数据与运算 4.4.关系运算符 关系运算符 关系运算符主要用于两个操作数的比较,其结果必为逻辑型数据,如 关系运算符主要用于两个操作数的比较,其结果必为逻辑型数据,如表 表2-5 2-5所示。所示。说明 说明:(1)(1)两个操作数为字符型时,按 两个操作数为字符型时,按ASCII ASCII码值对应比较,直到出现不相同 码值对应比较,直到出现不相同的字符为止,的字符为止,ASCII ASCII码值大的字符串大。码值大的字符串大。(2)(2)汉字字符大于西文字符。汉字字符大于西文字符。(3
36、)Like(3)Like字符串用于字符串的模糊查询,通常与通配符 字符串用于字符串的模糊查询,通常与通配符“?”“?”,“*”“*”,“”“”及 及 字符列表 字符列表,!字符列表 字符列表 等结合使用。其中 等结合使用。其中“?”“?”表示任意单 表示任意单个字符,个字符,“*”“*”表示任意多个字符,表示任意多个字符,“”“”表示任意 表示任意09 09的数字,的数字,字 字符列表 符列表 表示字符列表中的任何单一字符,表示字符列表中的任何单一字符,!字符列表 字符列表 表示不在字符 表示不在字符列表中的任何单一字符。列表中的任何单一字符。(4)(4)所有关系运算符的优先级相同。所有关系运
37、算符的优先级相同。上一页 下一页 返回任务1 VB中的数据与运算 5.5.逻辑运算符 逻辑运算符 逻辑运算符主要用于逻辑运算,其操作数经常是关系表达式或逻辑型 逻辑运算符主要用于逻辑运算,其操作数经常是关系表达式或逻辑型数据,如 数据,如表 表2-6 2-6所示。所示。注意 注意:在表达式中出现各种运算符时,其优先顺序为算术运算符 在表达式中出现各种运算符时,其优先顺序为算术运算符 连接 连接运算符 运算符 关系运算符 关系运算符 逻辑运算符也可以使用 逻辑运算符也可以使用()()改变优先顺序。每个 改变优先顺序。每个运算符的运算顺序均为自左至右。运算符的运算顺序均为自左至右。上一页 下一页
38、返回任务1 VB中的数据与运算2.1.5数组 数组主要用于处理大量的数据,把具有相同属性、类型的数据组合在 数组主要用于处理大量的数据,把具有相同属性、类型的数据组合在一起即为数组。数组中的每一个数据称为一个数组元素,可以用数组 一起即为数组。数组中的每一个数据称为一个数组元素,可以用数组名和数据在数组中的序号 名和数据在数组中的序号(即下标 即下标)唯一表示。唯一表示。数组必须声明后使用。声明时要声明其数组名、类型、维数和数组大 数组必须声明后使用。声明时要声明其数组名、类型、维数和数组大小,同时按声明是否可以确定数组的大小将数组分为静态数组和动态 小,同时按声明是否可以确定数组的大小将数组
39、分为静态数组和动态数组。数组。上一页 下一页 返回任务1 VB中的数据与运算 1.1.数组的定义 数组的定义 格式 格式:Dim:Dim数组名 数组名(下标 下标,下标,下标2)As 2)As数据类型 数据类型 其中 其中:下标有几个就表示几维数组。下标可以表示为 下标有几个就表示几维数组。下标可以表示为 下界 下界To To上界,下界省 上界,下界省略时默认为 略时默认为0 0。例如 例如:Dim a(1 Dim a(1,3 To 5)As Integer 3 To 5)As Integer 定义了一个整形二维数组,分别为 定义了一个整形二维数组,分别为:a(0,3),a(0,4),a(0,
40、5),a(1,3),a(1,4):a(0,3),a(0,4),a(0,5),a(1,3),a(1,4)和 和a a(1,5)(1,5)。Dim b(2 To 4,5 To 9)As Integer Dim b(2 To 4,5 To 9)As Integer 也定义了一个整形二维数组。也定义了一个整形二维数组。上一页 下一页 返回任务1 VB中的数据与运算 2.2.静态数组和动态数组 静态数组和动态数组 静态数组是指数组元素个数确定的数组。动态数组是指元素个数不确 静态数组是指数组元素个数确定的数组。动态数组是指元素个数不确定需要根据实际使用确定的数组。定需要根据实际使用确定的数组。1)1)静
41、态数组 静态数组 格式 格式:Public|Private|Dim:Public|Private|Dim数组名 数组名(维数定义 维数定义)As)As类型 类型 功能 功能:指定数组的维数及各维的范围。指定数组的维数及各维的范围。其中 其中:(维数定义 维数定义)表示为 表示为 下标下界 下标下界1 To 1 To下标上界 下标上界1,1,下标下界 下标下界2To 2To下标上界 下标上界2 2 其中下标下界默认为 其中下标下界默认为0 0,也可由,也可由Option Base1 Option Base1控制 控制(即在定义数组前,即在定义数组前,使用该语句时,下标上界为 使用该语句时,下标上
42、界为1)1)。As As类型 类型 默认时为变体型。默认时为变体型。上一页 下一页 返回任务1 VB中的数据与运算 例如 例如:Dim M(3 Dim M(3,1 To 4 1 To 4,1 To 5)As Double 1 To 5)As Double 它是一个三维数组,第一维下标范围为 它是一个三维数组,第一维下标范围为0 0一 一3,3,第二维下标范围为 第二维下标范围为1 1一 一4,4,第三维下标范围为 第三维下标范围为15 15。2)2)动态数组 动态数组 有时,事先无法确定到底需要多大的数组,并且希望在运行时能够改 有时,事先无法确定到底需要多大的数组,并且希望在运行时能够改变数
43、组的大小,就可以定义为动态数组。创建动态数组的方法很简单。变数组的大小,就可以定义为动态数组。创建动态数组的方法很简单。操作步骤如下。操作步骤如下。(1)(1)用 用Public Public语句 语句(公用数组 公用数组),Dim Dim语句 语句(模块级数组 模块级数组),Static Static或 或Dim Dim语 语句 句(局部数组 局部数组)在过程中声明数组。给数组赋一个空维数表,这样就将 在过程中声明数组。给数组赋一个空维数表,这样就将数组声明为动态数组。数组声明为动态数组。上一页 下一页 返回任务1 VB中的数据与运算(2)(2)在过程中用 在过程中用ReDim ReDim语
44、句为声明的动态数组分配实际的元素个数。格 语句为声明的动态数组分配实际的元素个数。格式 式:ReDim Preserve:ReDim Preserve数组名 数组名(维数定义 维数定义)As)As类型 类型 其中 其中:ReDim ReDim语句用来定义或重定义原来已经用带空括号 语句用来定义或重定义原来已经用带空括号(没有维数下标 没有维数下标)的 的Private,Public Private,Public或 或Dim Dim语句声明过的动态数组的大小。语句声明过的动态数组的大小。可以使用 可以使用ReDim ReDim语句反复改变数组的元素以及维数的数目,但是不能 语句反复改变数组的元素
45、以及维数的数目,但是不能在将一个数组定义为某种数据类型结构之后,再使用 在将一个数组定义为某种数据类型结构之后,再使用ReDim ReDim将该数组 将该数组改为其他数据类型,除非是 改为其他数据类型,除非是Variant Variant所包含的数组。如果该数组确定是 所包含的数组。如果该数组确定是包含在某个 包含在某个Variant Variant中,且没有使用 中,且没有使用Preserve Preserve关键字,则可以使用 关键字,则可以使用As As 子句来改变元素的类型,但在使用了此关键字的情况下,是不 子句来改变元素的类型,但在使用了此关键字的情况下,是不允许改变任何数据类型的。
46、允许改变任何数据类型的。上一页 下一页 返回任务1 VB中的数据与运算 如果使用了 如果使用了Preserve Preserve关键字,即可在重定义数组最末维的大小的同时 关键字,即可在重定义数组最末维的大小的同时仍保留数组中的内容,例如 仍保留数组中的内容,例如:ReDim M(5,5,5)ReDim M(5,5,5)ReDim Preserve M(5,5,10)ReDim Preserve M(5,5,10)为已有的动态数组 为已有的动态数组M M增加其最末维大小的同时,又不清楚其中所含的 增加其最末维大小的同时,又不清楚其中所含的任何数据。任何数据。注意 注意:如果将数组改小,则被删除
47、的元素的数据就会丢失。如果按地 如果将数组改小,则被删除的元素的数据就会丢失。如果按地址将数组传逆给某个过程,就不要在过程内重定义该数组各维的大小。址将数组传逆给某个过程,就不要在过程内重定义该数组各维的大小。上一页 下一页 返回任务1 VB中的数据与运算【例【例2 2一 一3 3】当单击】当单击“输入成绩 输入成绩”按钮时,在 按钮时,在InputBox InputBox对话框中输入学生 对话框中输入学生人 人 数,然后在对话框中依次输入不多于人数的几个成绩。再次单击 数,然后在对话框中依次输入不多于人数的几个成绩。再次单击“输 输 入成绩 入成绩”按钮将追加学生人数和成绩。单击 按钮将追加
48、学生人数和成绩。单击“显示成绩 显示成绩”按钮显示 按钮显示成绩 成绩 平均分和未输入成绩的人数。平均分和未输入成绩的人数。程序代码如下 程序代码如下:Dim mark%()Dim mark%(),aver%aver%,k%k%,n%n%Private Sub inputnark(k Private Sub inputnark(k,n n,aver)aver)Do White kn Do White kn Markx=InputBox(“Markx=InputBox(“输入第 输入第:”&k+1&“:”&k+1&“位学生的成绩 位学生的成绩”,“数据输入 数据输入”)If markx=Then
49、 Exit Do If markx=Then Exit Do k=k+1:mark(k)=markx:aver=aver+markx k=k+1:mark(k)=markx:aver=aver+markx Loop Loop End Sub End Sub Private Sub Private Sub输入成绩 输入成绩_Click()_Click()Dim m$Dim m$上一页 下一页 返回任务1 VB中的数据与运算m=lnputBox(“m=lnputBox(“请输入学生人数 请输入学生人数”)”)If mThen n=k+Cint(m)If mThen n=k+Cint(m)ReDim
50、 Preserve mark(1 To n)ReDim Preserve mark(1 To n)Call inputmark(k Call inputmark(k,n n,aver)aver)End Sub End SubPrivate Sub Private Sub显示成绩 显示成绩_Click()_Click()Print“Print“已经输入的学生成绩为 已经输入的学生成绩为:For I=1 To n For I=1 To nPrint mark(i);Print mark(i);If I Mod 10=0 Then Print If I Mod 10=0 Then PrintNPXL