《数据类型常量与变量课件》由会员分享,可在线阅读,更多相关《数据类型常量与变量课件(25页珍藏版)》请在金锄头文库上搜索。
1、第3章 数据类型、常量与变量,1 数值型,基本数据类型,2 String(字符串型) 字符串是指连续的字符序列。字符串数据类型是专门用来存放文字信息的。字符串型又分为“定长字符串型”和“变长字符串型”两大类。字符串类型所占的内存空间大小 与字符串长度有关。,3 Boolean(逻辑型、布尔型) Boolean类型的数据只可能有两个值:True(逻辑“真”)和False(逻辑“假”),用来表示“是”与“否”、“开”与”关”、“对”与”错”这类只有两种取值的情况。一个逻辑型数据却要占2个字节的存储空间。,基本数据类型,还有Object(对象型)和Variant(变体类型),将分别在后面节中讲解。,
2、4 Date(日期时间型) Date类型又称为日期型,这种类型的数据可以存放日期信息、时间信息或者同时存放日期与时间信息。Date类型数据用8个字节来表示日期和时间(公元100年1月1日9999年12月31日) 。,基本数据类型,1 字节型、整型、长整型 (末位加 intb Print Form1.inta End Sub,Option Explicit Public inta As Integer Private Sub Cmd1_Click() Form2.inta = 100 Print inta Print Form2.inta End Sub,在窗体模块中,窗体的属性名、窗体的方法名
3、、窗体模块的事件过程名和通用过程名、窗体上的控件名与模块级定义的变量认为是同一层次的,所以模块级变量、全局级变量不能与前面所提及的名称相重复。,4 变量与对象同名情况,在定义变量时,尽量使用作用范围小的变量。,对象型变量占用4个字节共32位的内存空间,保存的是某一个对象的引用(即内存中的地址),程序对对象型变量的操作等于对它所引用对象的操作。,对象型数据类型(Object),对象型变量在被定义但未被赋值时的值是一个特殊值:Nothing。 例: Dim objFirst As Object (定义) Set objFirst= cmdOK objFirst.Caption =OK : objF
4、irst.Move 120,234,345 Set objFirst=txtEdit : objFirst.Text=Hello Object表示可以引用任何一种类型的对象。 如果用Form、Textbox、CommandButton、Line、Shape等对象的类型名,只能引用这种特定类型的对象。 例:Dim objSecond As CommandButton Set objSecond=cmdOK : objSecond.Caption=Hello! 例:Dim objThird As Form Set objThird =cmdOK (错误!),Public|Private|Dim|S
5、tatic变量名 As Object|Control|对象类型名,变体类型变量可以存贮几乎所有系统定义类型的数据(除用户自定义类型)。把其它类型的数据赋给变体变量,变体变量的类型会随之变化,适应新的值。变体变量在存放数值时,占16字节的内存;存放字符串时,占用22字节的内存再加字符串长度。 例:Dim vntFirst As Variant (定义) vntFirst=17 (为字符型“17”) vntFirst=vntFirst-15 (为数值型,值为 2) 变体变量类型是默认类型,在定义变量时可以省略“As Variant”。变体变量也可以引用对象,赋值时须使用Set语句。 例:Dim v
6、ntSecond(定义) vntFirst=1234(为数值型1234) Set vntFirst=cmdOK (对象型,对cmdOK的引用) Variant变量有的特殊取值:Empty、Null。,变体类型(Variant),VB允许不同类型的变量之间相互赋值,也允许把不同类型的值赋予某种类型的变量,VB会自动将所赋予的值转换为被赋值的变量的类型。 1 数值型变量的赋值 数值型变量之间可以相互赋值。浮点数转换为整型数时,小数部分“四舍五入”为整数(其中0.5要向最近的偶数靠拢)。注意可能出现“溢出”错误。 4.56 值为5, i=4.5 值为4 2 字符串变量 如果字符串变量中存贮的是数值信
7、息,则可以将其赋予数值型变量。包括非数值字符的字符串(如有字母、标点符号)不能赋值给数值型变量,否则出现“类型不匹配”错误。 str1=123 值为123 , int1=1.2e3 值为1200 sng1=123abc 错误,类型转换,隐式转换,3 逻辑型变量 逻辑变量的值赋给数值型变量,False转换为0,True转换为-1。 逻辑变量的值 赋给字节型时, False转换为0,True转换为255。 数值型变量的值赋给逻辑变量,0转换为False,其它值转换为True。 逻辑型变量的值赋给字符串,True和False分别转换为True和False。 字符串转换为逻辑型时,只有True和Fal
8、se可以分别被转换为True和False。 4 日期时间型变量 日期时间型变量赋给数值型变量时,日期部分转换为数值的整数部分,值为此日期距1899年12月30日的天数;时间部分转换为小数部分,从零时到该时间占一整天的比例,12:00:00转为0.5。 例:dtm3= #3/18/1999 6:00:00# :sng2=dtm sng2的值为36237.25 5 所有的类型值均可以转换为字符串值。 日期时间型变量转换为字符串时,按照日期的短格式字符串。 6 变体类型的empty值向数值型转换时变为0,向字符串型转换时变为空字符串。,类型转换,显式转换,VB除了在赋值过程中对类型进行自动的转换外,
9、还提供了一些数据类型转换函数。使用这些数据类型转换函数会使程序的可读性增强,并能进行强制类型转换,避免可能出现的歧义性。,转换函数 转换为转换函数 转换为 转换函数转换为 CBool BooleanCByte Byte CCur Currency CDate Date CDbl DoubleCInt Integer CLng Long CSng SingleCStr String CVar VariantCVErr Error CDec Decimal 例如:intNum1=Cint(123.45) : intNum2=CDbl(1.2e3),显式转换的规则和隐式转换相同,隐式不能转换的,显式
10、也不能转换。,不能转换的情况参见教材P68页。,类型声明符,使用类型声明符,就不必使用Dim等语句来指定变量的数据类型,只需在第一次使用时,在变量名后面加一个类型声明符即可。,声明符 数据类型 声明符 数据类型 $ 变长字符串型 ! 单精度浮点型 % 整型 # 双精度浮点型 & 长整型 货币型,X%=5 定义一个整型变量,并赋值。,变量赋值之后,不能改变它的数据类型 X%=5 : X& =10 错误,也可使用dim等语句中使用类型说明符,如 Dim int1%,符号常量是指使用一个名称代表在程序运行过程中其值一直保持不变的量。 符号常量的作用有: (1) 便于记忆与识别,可使用一个具有描述性的
11、名字替代一个抽象的值; (2) 便于修改,如果要改变常量所代表的值,只需在定义常量的地方修改即可。,符号常量,常量的定义方法: (1) 过程级常量:在过程中定义 Const 常量名 As 类型名=表达式 (2) 模块级常量:在模块的声明段中定义 Private Const 常量名 As 类型名=表达式 (3) 全局常量:在标准模块的声明段中定义 Public Const 常量名 As 类型名=表达式,符号常量的命名规则与变量相同,一般使用con前缀或大写字母加以区别。 定义符号常量时,可以使用不包括函数和变量表达式来赋值,也可以使用其他已定义的常量来赋值。 在程序运行过程中,不能再为符号常量赋值。,符号常量,注意: 不能在窗体模块和类模块中定义全局常量 。 不能在窗体模块中定义全局定长字符串变量。 只能在标准模块中定义全局定长字符串变量及全局常量 。,系统预定义的符号常量,一般以“vb”为前缀,例如,定义全局常量PI: Public Const PI As Double = 3.1415926 在过程中可以引用符号常量的值: s = PI *r *r,