1、南丰中学信息组第3章 变量、常量、数组与数据类型南丰中学信息组3.1 变量与常量变量与常量3.2 数值数据类型数值数据类型3.3 字字 符符 串串3.4 Variant数据类型数据类型3.5 Date数据类型数据类型3.6 Decimal数据类型数据类型3.7 数据类型转换数据类型转换3.8 数数 组组3.9 记记 录录南丰中学信息组 VB中的数据又以四种形式存储:变量、常量、数组和记录,如中的数据又以四种形式存储:变量、常量、数组和记录,如表表3-1所示。每一种都适合于不同的特定任务。所示。每一种都适合于不同的特定任务。名 字能够存储的数据变量常量数组记录一个可以改变的单值一个固定的单值多个
2、同一数据类型的值多个不同数据类型的数据值表表33-11 数据存储形式数据存储形式南丰中学信息组3.1 变量与常量变量与常量33.11.1 1 变量变量 变量是指在程序运行过程中可以改变的量。一个变变量是指在程序运行过程中可以改变的量。一个变量有一个名字,在内存中占据一定的存储单元,在该存量有一个名字,在内存中占据一定的存储单元,在该存储单元中存放变量的值。储单元中存放变量的值。1变量命名变量命名 为便于程序设计时使用变量,应根据变量代表的意为便于程序设计时使用变量,应根据变量代表的意义,给变量起个易读、明了的名字,如义,给变量起个易读、明了的名字,如MyName,MyAge,Total,Sum
3、等。等。2变量声明变量声明 在在VB中使用变量,除了正确给变量命名之外,还中使用变量,除了正确给变量命名之外,还要声明其数据类型。变量名的声明有两种方法:隐式声要声明其数据类型。变量名的声明有两种方法:隐式声明和显式声明。明和显式声明。南丰中学信息组 还有一种方式就是在窗体的对象列表中选择还有一种方式就是在窗体的对象列表中选择“(通用通用)”,然,然后在后在“声明区声明区”(Declarations)中声明中声明Option Explicit,如图如图3-1所所示。示。图图3-1 显示声明变量显示声明变量南丰中学信息组表表33-22VBVB的标准数据类型的标准数据类型数据类型类型名称类型声明字
4、符字 节有 效 值字节型Byte 10255布尔型Boolean 2True或False整型Integer%23276832767长整型Long&421474836482147483647南丰中学信息组单精度型Single!4负 数:3.4 0 2 8 2 3 E 3 8 1.40298E45正数:1.401298E453.402823E38双精度型Double#8负数:1.79769313486232E308 4.94065645841247E324正数:4.94065645841247E324 1.79769313486232E308南丰中学信息组货币型Currency8922337203
5、685477.5808922337203685477.5807日期型Date 8January 1100December 319999对象型Object 4任何对象的引用变长字符串型String$字符串长度,1字节/字符 定长字符串型String*Num$Num 可变类型Variant 不定 南丰中学信息组添加添加Option Explicit 语句的方法:语句的方法:(1)自动添加)自动添加Option Explicit 语句语句(2)手工添加)手工添加Option Explicit 语句语句3全局变量的声明全局变量的声明 Public声明的变量可以被工程中的任一窗体、任一声明的变量可以被工
6、程中的任一窗体、任一模块中的任一过程程序使用。模块中的任一过程程序使用。4变量的作用域变量的作用域 变量在程序中的位置不同,变量的作用域就不同,变量在程序中的位置不同,变量的作用域就不同,有窗体变量、模块变量、过程变量、类变量及语句变量有窗体变量、模块变量、过程变量、类变量及语句变量。南丰中学信息组图3-3 窗体变量的定义(1)窗体变量)窗体变量南丰中学信息组(2)模块变量)模块变量(3)过程变量)过程变量 在过程中使用的变量可以是它的窗体或模块在过程中使用的变量可以是它的窗体或模块Declaration变量,也可以是变量,也可以是Public 变量或过程里声明的变变量或过程里声明的变量。量。
7、(4)类模块中的变量)类模块中的变量 在类模块变量中的在类模块变量中的Public|Private类型,类型,Public已说已说过,可以被其他窗体或模块访问,而过,可以被其他窗体或模块访问,而Private变量只能被类变量只能被类模块中的其他过程或函数访问。模块中的其他过程或函数访问。(5)语句变量)语句变量 变量的声明不一定要在窗体、模块、过程的顶部进行变量的声明不一定要在窗体、模块、过程的顶部进行,可以在程序的任何地方进行声明,语句变量就是在窗体,可以在程序的任何地方进行声明,语句变量就是在窗体、模块、过程的语句块中声明的变量。、模块、过程的语句块中声明的变量。南丰中学信息组5变量名冲突
8、变量名冲突 程序可以在不同地方声明变量,上面已经讲过。程序可以在不同地方声明变量,上面已经讲过。6变量的赋值变量的赋值 声明完变量后,就可以给变量赋值。声明完变量后,就可以给变量赋值。7变量的精度变量的精度 每个变量都有其类型,每种类型都有其自身的存储定每个变量都有其类型,每种类型都有其自身的存储定义义(在后面会讲到在后面会讲到),因而每个变量都有其范围。,因而每个变量都有其范围。南丰中学信息组33.11.2 2 常量常量(1)系统内在常量)系统内在常量 这种常量是系统提供的自身拥有的常量。这种常量是系统提供的自身拥有的常量。例如,表例如,表3-3所示是所示是VB中的表示颜色的常量,可在代码中
9、的任何地方代中的表示颜色的常量,可在代码中的任何地方代替实际值。替实际值。南丰中学信息组表表33-33系统常量中的颜色值系统常量中的颜色值常 量值描 述VbBlack0 x0黑色VbRed0 xFF红色VbGreen0 xFF00绿色VbYellow0 xFFFF黄色VbBlue0 xFF0000蓝色VbMagenta0 xFF00FF紫红色VbCyan0 xFFFF00青色VbWhite0 xFFFFFF白色南丰中学信息组(2)符号常量)符号常量(自定义常量自定义常量)在程序设计中使用在程序设计中使用Const 声明的常量。在声明一个常量后声明的常量。在声明一个常量后就可以用常量名来引用其代
10、表的常量,常量的定义语法如下:就可以用常量名来引用其代表的常量,常量的定义语法如下:Public|Private Const 变量名变量名As 数据类型数据类型=表达式表达式 注意以下几点:注意以下几点:用用Const 声明的常量在程序运行的过程中是不能被重新赋声明的常量在程序运行的过程中是不能被重新赋值的。值的。在常量声明的同时赋值。在常量声明的同时赋值。可以为声明的常量指定类型,如可以为声明的常量指定类型,如Const conVal As Currency=3.78,缺省时为所赋值的类型。缺省时为所赋值的类型。用常量为常量初始化时,注意循环引用易出错。用常量为常量初始化时,注意循环引用易出
11、错。南丰中学信息组3.2 数值数据类型数值数据类型 数值数据类型有整型、长整型、单精度型、双精度型及数值数据类型有整型、长整型、单精度型、双精度型及货币型。货币型。33.22.1 1 整型整型 整型以整型以Integer表示,变量存储为表示,变量存储为16位位(2个字节个字节),数值范,数值范围为围为3276832767之间,当给之间,当给Integer类型的变量赋值时,类型的变量赋值时,如果值大于如果值大于32767或小于或小于32768便会溢出,因此当某个整数便会溢出,因此当某个整数的值超出的值超出Integer的范围时,必须用的范围时,必须用Long类型。类型。33.22.2 2 长整型
12、长整型 Long(Long(长整型长整型)变量存储为变量存储为32 32 位位(4(4 个字节个字节),1 1个符号位,个符号位,3131个数据位。个数据位。南丰中学信息组33.22.3 3 单精度型单精度型 单精度型也称为单精度型也称为Single 数据类型。数据类型。Single(单精度浮点型单精度浮点型)变量存储为变量存储为 IEEE 32 位位(4 个字节个字节)浮点数浮点数值形式,一个符号位,值形式,一个符号位,8个指数位,个指数位,23个数据位。个数据位。33.22.4 4 双精度型双精度型 双精度型也称双精度型也称Double Double 数据类型。数据类型。33.22.5 5
13、 货币型货币型 货币型也称货币型也称currency 数据类型数据类型 Currency 变量存储为变量存储为 64 位位(8 个字节个字节)整型数值形式,然后除整型数值形式,然后除以以10000给出一个定点数,其小数点左边有给出一个定点数,其小数点左边有 15 位数字,右边有位数字,右边有 4 位数字。位数字。南丰中学信息组3.3 字字 符符 串串 字符串是保持字符信息的基本数据类型。字符串变量可字符串是保持字符信息的基本数据类型。字符串变量可以包含大约以包含大约65535字节字节(64KB),可以为定长,也可以为变长,可以为定长,也可以为变长,每个字节包含一个字符。每个字节包含一个字符。3
14、3.33.1 1 可变长字符串可变长字符串 大多数字符串变量是可变长字符串类型,存储在其中的大多数字符串变量是可变长字符串类型,存储在其中的字符串长度可以为字符串长度可以为065535个字符之间。可变长字符串变量个字符之间。可变长字符串变量一次只能存储一个字符串,但其长度可以随程序运行而改变。一次只能存储一个字符串,但其长度可以随程序运行而改变。33.33.2 2 定长字符串定长字符串 定长字符串类型的变量,可以定义从定长字符串类型的变量,可以定义从032767个字符的个字符的固定长度。程序可以改变定长字符串变量的内容,但是不能固定长度。程序可以改变定长字符串变量的内容,但是不能改变其长度。改
15、变其长度。南丰中学信息组33.33.3 3 使用字符串应注意的问题使用字符串应注意的问题(1)0结束字符串结束字符串 有些有些Windows API接口函数是用接口函数是用C+编写的,字符串最编写的,字符串最后一个字符是后一个字符是CHR(0),因而要将因而要将Windows API函数转换到函数转换到VB中来,必须经过包装转换。中来,必须经过包装转换。(2)字符串中的大小区别)字符串中的大小区别 VB对其语法的大小写没有区别,但在字符串中,对其语法的大小写没有区别,但在字符串中,VB对大对大小写有区别,如果想忽视字符串大小的区别,可以加上小写有区别,如果想忽视字符串大小的区别,可以加上Opt
16、ion compare text 语句。语句。(3)字符串函数)字符串函数南丰中学信息组3.4 Variant数据类型数据类型 Variant数据类型是没被显式声明数据类型是没被显式声明(用如用如 Dim、Private、Public 或或 Static等语句等语句)为其他类型变量的数据类型,为其他类型变量的数据类型,Variant 数据类型没有类型声明字符。数据类型没有类型声明字符。Variant是一种特殊的数据类型,除了定长是一种特殊的数据类型,除了定长String数据及数据及用户定义类型外,可以包含任何种类的数据。用户定义类型外,可以包含任何种类的数据。南丰中学信息组3.5 Date数据
17、类型数据类型 Date变量存储为变量存储为IEEE 64位位(8个字节个字节)浮点数值形式,其表浮点数值形式,其表示的日期范围为示的日期范围为100年年1月月1日日9999年年12月月31日,时间范围为日,时间范围为00000235959。南丰中学信息组3.6 Decimal数据类型数据类型 Decimal变量存储为变量存储为96位位(12个字节个字节)无符号的整型形式,无符号的整型形式,值为除以一个值为除以一个10的幂数所得结果。的幂数所得结果。Decimal数据类型只能在数据类型只能在Variant中使用,也就是说,不中使用,也就是说,不能声明变量为能声明变量为Decimal类型。类型。南
18、丰中学信息组3.7 数据类型转换数据类型转换 一些编程语言对不同类型数据的处理比较严一些编程语言对不同类型数据的处理比较严格。将不同类型的值赋给了变量,可能会产生逻格。将不同类型的值赋给了变量,可能会产生逻辑错误。辑错误。南丰中学信息组3.8 数数 组组 数组是有序数据的集合。数组中的元素属于同一数数组是有序数据的集合。数组中的元素属于同一数据类型。数组的下标是有界的,分为下界和上界。数组据类型。数组的下标是有界的,分为下界和上界。数组可以用可以用Dim、Private、Public或或Static来声明,它们的语来声明,它们的语法格式相同。下面只讲用法格式相同。下面只讲用Dim声明数组。声明
19、数组。南丰中学信息组表表33-44数据类型转换函数数据类型转换函数函 数转换后的类型 函 数转换后的类型CboolBoolean CSngSingleCbyteByte CStrStringCcurCurrency CvarVariantCdateDate CVErrErrorCDblDouble Hex十六进制数Chr返回字符码对应的字符 Oct八进制数CintInteger Str将字符串以数字返回CLngLong Val返回字符串内的数字南丰中学信息组33.88.1 1 固定大小数组固定大小数组 固定大小数组是指数组元素的个数是固定不变的。根据固固定大小数组是指数组元素的个数是固定不变的
20、。根据固定大小数组的维数,可以将它分为一维数组和多维数组。定大小数组的维数,可以将它分为一维数组和多维数组。1一维数组一维数组2多维数组多维数组Dim 数组名数组名(下标边界列表下标边界列表)As 数据类型数据类型下标边界的定义形式:下标边界的定义形式:下标下界下标下界 To下标上界下标上界下标边界列表指用逗号分开的数组各维的下标边界,即下标边界列表指用逗号分开的数组各维的下标边界,即下标下界下标下界 To下标上界下标上界,下标下界下标下界 To下标上界下标上界,下标下界下标下界 To下标上界下标上界(第一维第一维)(第二维第二维)(第第n维维)南丰中学信息组33.88.2 2 动态数组动态数
21、组 如果把数组的大小定义到足够大来满足任意的实际应用需如果把数组的大小定义到足够大来满足任意的实际应用需要,这种方法效率很低且浪费内存空间。要,这种方法效率很低且浪费内存空间。在声明数组时,若不给出维数列表,则是将数组声明为动在声明数组时,若不给出维数列表,则是将数组声明为动态数组。例如:态数组。例如:Dim MyArry()As Integer南丰中学信息组1LBound 函数和函数和UBound 函数函数 LBound 函数和函数和UBound函数都是返回一个函数都是返回一个 Long 型数型数据,前者得到的值为指定数组维可用的最小下标,而后者据,前者得到的值为指定数组维可用的最小下标,而
22、后者得到的是最大下标。它们的语法为:得到的是最大下标。它们的语法为:LBound(数组名,数组名,指定的维数指定的维数)UBound(数组名,数组名,指定的维数指定的维数)南丰中学信息组2数组的高级功能数组的高级功能数组常用来存储成组的变量,但在别的一些方面数组也是很有用的。数组常用来存储成组的变量,但在别的一些方面数组也是很有用的。(1)数组赋值)数组赋值给维数或数据类型不同的数组赋值,成功或失败取决于以下几个因素:给维数或数据类型不同的数组赋值,成功或失败取决于以下几个因素:赋值符左边的数组类型赋值符左边的数组类型(固定数组或动态数组固定数组或动态数组)是否与右边匹配。是否与右边匹配。赋值
23、符左边数组的维数是否和赋值符右边数组的维数匹配。赋值符左边数组的维数是否和赋值符右边数组的维数匹配。赋值符两边数组的每一维的数组元素个数是否匹配。赋值符两边数组的每一维的数组元素个数是否匹配。赋值符两边所有元素的数据类型是否相容。赋值符两边所有元素的数据类型是否相容。(2)从函数返回数组)从函数返回数组从一个函数返回一组值是可能实现的。从一个函数返回一组值是可能实现的。南丰中学信息组3.9 记记 录录 至此,已经介绍了基本类型的变量,也介绍了构造类型数至此,已经介绍了基本类型的变量,也介绍了构造类型数据据数组。但是只有这些数据类型是不够的,有时需要将不数组。但是只有这些数据类型是不够的,有时需
24、要将不同类型的数据组合成一个有机的整体,以便于引用。同类型的数据组合成一个有机的整体,以便于引用。1 1定义记录类型定义记录类型 记录数据类型用记录数据类型用TypeEnd TypeTypeEnd Type语句定义。语句定义。定义一个记录数据类型的一般形式为:定义一个记录数据类型的一般形式为:Private|Public Type Private|Public Type 记录类型名记录类型名 成员列表成员列表End TypeEnd Type 南丰中学信息组2定义记录类型变量定义记录类型变量 定义一个记录类型之后,可以用定义一个记录类型之后,可以用Dim(Global,Static)来声明拥有这种数据类型的变量。来声明拥有这种数据类型的变量。3赋值和检索值赋值和检索值 对这种变量的元素赋值和从元素中检索值类似于属性的对这种变量的元素赋值和从元素中检索值类似于属性的设置和获取:设置和获取:4嵌套用户定义数据类型嵌套用户定义数据类型5记录数组记录数组 一个记录变量包括一组数据一个记录变量包括一组数据(如一个学生的学号、姓如一个学生的学号、姓名、成绩名、成绩等数据等数据)。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。