第 2 章 数据类型及操作
DESCRIPTION
第 2 章 数据类型及操作. 2.1 常量 2.2 变量 2.3 数据类型 2.4 数组 2.5 自定义数据类型 2.6 标识符命名规则 2.7 运算符和表达式. 2.1 常量. 2.1.1 定义常量 2.1.2 使用常量. 返回首页. 2.1.1 定义常量. 1.声明自定义常量 标识 符 2.设定用户自定义常量标识符的范围. 返回本节. 2.1.2 使用常量. 一旦已经定义了常量标识符,就可将它们放置在代码中,尤其是当 标识 符为有意义的名称时,可以使源代码更加便于阅读。 - PowerPoint PPT PresentationTRANSCRIPT
第 2 章 数据类型及操作
2.1 常量 2.2 变量 2.3 数据类型 2.4 数组 2.5 自定义数据类型 2.6 标识符命名规则 2.7 运算符和表达式
2.1 常量
2.1.1 定义常量 2.1.2 使用常量
返回首页
2.1.1 定义常量
1 .声明自定义常量标识符2 .设定用户自定义常量标识符的范围
返回本节
2.1.2 使用常量 一旦已经定义了常量标识符,就可将它们放置
在代码中,尤其是当标识符为有意义的名称时,可以使源代码更加便于阅读。
当需要对常量值作修改时,只需要在常量标识符定义处做改动,显然这有利于提高源程序的可维护性。
返回本节
2.2 变量
2.2.1 声明变量 2.2.2 变量范围①
2.2.3 显式声明和隐式声明 2.2.4 组合声明
返回首页
2.2.1 声明变量 声明变量就是事先将变量通知程序,由此使变
量的使用合法。 声明变量时需要指明:变量名(变量标识符)
和变量类型。其中,变量类型被用来确定变量能够存储的数据的种类。
声明变量的语法如下: Dim/Private/Public/ Static 变量名 [As 类型 ]
返回本节
2.2.2 变量范围①
1 .过程级变量2 .模块级变量3 .公共变量
返回本节
2.2.3 显式声明和隐式声明1 .隐式声明 为方便用户使用, Visual Basic 具有较大的灵活
性,其表现在变量声明时则是:在使用一个变量之前并不必先声明这个变量。
2 .显式声明 显式声明就是对于每个需要使用的变量都在使
用前采用声明语句定义。一旦遇到一个未经明确声明就当成变量的名字, Visual Basic 都发出错误警告。由此可以避免写错变量名引起的麻烦。
返回本节
2.2.4 组合声明 可以使用一条声明语句将多个声明组合起来,
方法是在多个被声明的变量之间用“ ,” 号隔开。如下列语句:
Dim I As Integer, Amt As Double
Private YourName As String, BillsPaid As Currency
Public Test,Amount, J As Integer
返回本节
2.3 数据类型
2.3.1 用于保存数值的数据类型 2.3.2 String 数据类型 2.3.3 Boolean 数据类型 2.3.4 Date 数据类型 2.3.5 Object 数据类型 2.3.6 转换数据类型 2.3.7 Variant 数据类型 2.3.8 数据范围
返回首页
2.3.1 用于保存数值的数据类型 Visual Basic 支 持 几 种 数 值 数 据 类 型 —
Integer ( 整 型 ) 、 Long ( 长 整型)、 Single (单精度浮点型)、 Double (双精 度 浮 点 型 ) 、 Currency ( 货 币 型 ) 。 另外, Byte (字节型)也可用于数值计算。
返回本节
2.3.2 String 数据类型 由数字组成的字符串可以赋予数值变量。也可将数值赋
予字符串变量。例如以下语句: Dim intX As Integer
Dim strY As String, strZ As String
strY = "100.23"
intX = strY ' 将字符串传递给数值变量 strZ = Cos (strY) ' 将余弦值传递给字符串变量 在以上操作中, Visual Basic 会自动强制数据值为适当
的数据类型。
返回本节
2.3.3 Boolean 数据类型 若变量的值只是 true/false 、 yes/no 、 on/off 信息,
则可将它声明为 Boolean 类型。 Boolean 的默认值为 False 。在下面的例子中, blnRunning 是 Boolean 变量,存储简单的 yes/no 设置。
Dim blnRunning As Boolean
' 查看磁带是否在转 If Recorder.Direction = 1 Then
blnRunning = True
End if
返回本节
2.3.4 Date 数据类型 用于存储 Date 和 Time 值, Visual Basic 接受许多种
文字的 Date 和 Time 格式。例如: Dim SomeDate As Date
SomeDate = #1980-03-16#
SomeDate = #3-6-93 13:20#
SomeDate = #March 27 , 1993 1:20am# 当把数值数据转换为 Date 类型,或存储到 Date 类型的
变量时,小数点左边的值表示 Date 信息,小数点右边的值则代表 Time 。午夜为 0 ,正午为 0.5 。负数表示公元 1899 年 12 月 31 日之前的 Date 。
返回本节
2.3.5 Object 数据类型 Object 变量采用 32 位( 4 个字节)地址来存
储对象,该地址可引用当前应用程序中或其他应用程序中的对象。可以通过 Set 语句而指定一个被声明为 Object 的变量去引用应用程序所能够识别的任何实际对象,例如:
Dim objDb As Object
Set objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")
返回本节
2.3.6 转换数据类型
表 2-1 转换函数
转换函数 将表达式转换成 转换函数 将表达式转换成
Cbyte ByteCSng
Single
Ccur CurrencyCStr
String
Cdate DateCvar
Variant
CDbl DoubleCVErr
Error
Cint Integer
返回本节
2.3.7 Variant 数据类型 Variant 型是声明变量时的默认类型,能够存储
所有类型的数据。如果把数据赋予 Variant 变量,则不必在这些数据的类型间进行转换, Visual Basic 会自动完成任何必要的转换。
除了可以像其他标准数据类型一样操作外, Variants 还包含 3 种特定值:Empty 、 Null 和 Error 。
1 . Empty 值:有时需要知道是否已将一个值赋予所创建的变量。在赋值之前, Variant 变量具有值 Empty 。
2 . Null 值: ull 通常用于数据库应用程序,表示未知数据或丢失的数据。
3 . Error 值:用来指出已发生过程中的错误状态的特定值。
返回本节
2.3.8 数据范围
表 2-2 数据存储空间大小与取值范围
返回本节
2.4 数组
2.4.1 固定大小的数组 2.4.2 建立包含其他数组的数组 2.4.3 多维数组 2.4.4 动态数组
返回首页
2.4.1 固定大小的数组
1 .语法 Dim/Private/Public/ Static 数 组 名([ 下界 To ] 上界 ) [As 数据类型 ]
建立公用数组,在模块的声明段用 Public 语句声明数组。
建立模块级数组,在模块的声明段用 Dim 或Private 语句声明数组。
建立局部数组,在过程内用 Dim 、 Private 或Static 语句声明数组。
2 .设定上下界 声明数组时,需要在数组名之后跟一组用括号括起来的
数,由此确定数组的下界、上界。下界、上界的取值在Long 数据类型所确定的范围内。默认的下界为 0 。例如:
Dim Counters (1 To 15) As Integer '15 个元素,索引号从 1 到 15 。
Dim Sums (100 To 120) As String '21 个元素,索引号从 100 到 120 。
Dim Counters (14) As Integer '15 个元素,索引号从 0 到 14 。
返回本节
2.4.2 建立包含其他数组的数组 通过建立 Variant 数据类型的数组,可以使几
个数组共居一处。创建过程是:建立工程,在工程中建立窗体 Form1 ,在窗体中设置命令按钮 Command1 。然后建立 Command1 的 Click事件过程程序。
Private Sub Command1_Click ()
Dim intX As Integer ‘ 声明计数器变量’声明并放置整数数组
Dim countersA (5) As Integer
For intX = 0 To 4
countersA (intX) = 5
Next intX
' 声明并放置字符串数组 Dim countersB (5) As String
For intX = 0 To 4
countersB (intX) = "hello"
Next intX
Dim arrX (2) As Variant ' 声明拥有两个成员的新数组 arrX (1) = countersA () ' 将其他数组移居到 arrX 数组 arrX (2) = countersB ()
MsgBox arrX (1) (2) ' 显示 arrX 数组中的成员 MsgBox arrX (2) (3)
End Sub
返回本节
2.4.3 多维数组
1 .声明多维数组的语法 Dim/Private/Public/ Static 数组名([ 下界 1 To ] 上界 1,[ 下界 2 To ] 上界2,…, [ 下界 i To ] 上界 I) [As 数据类型 ]
2 .多维数组声明举例 Static MatrixA (9, 9) As Double ' 声明 10 × 10 的二维数组
Dim MultiD (3, 1 To 10, 1 To 15) ' 声明 4 × 10 × 15 的三维数组
3 .用循环嵌套处理多维数组Dim I As Integer, J As Integer
Static MatrixA(1 To 10, 1 To 10) As Double
For I = 1 To 10
For J = 1 To 10
MatrixA (I, J) = I * 10 + J
Next J
Next I
返回本节
2.4.4 动态数组
1 .创建动态数组的步骤( 1 )声明动态数组,与声明固定大小的数组类似,但给数组附以一个空维数表。
( 2 )通过在应用程序中执行 ReDim 语句,给数组指定维数和分配实际的元素个数。
2 .在 ReDim 语句中使用 Preserve 关键字 一般情况下,每次执行 ReDim 语句时,当前
存储在数组中的值都会全部丢失。 Visual Basi重新将数组元素的值置为 Empty 、置为 0 、置为零长度字符串、置为 Nothing 。其好处是可以更有效地利用内存。
但有时又希望既能改变数组大小又不丢失数组中的数据。这时就需要在 ReDim 语句中使用 Preserve 关键字。例如:
ReDim Preserve DynArray (4 to 20)
返回本节
2.5 自定义数据类型 在模块的声明部分可以使用 Type 语句建立自定义数据
类型。语法格式如下: [Private|Public] Type 自定义类型名 元素 As 类型 [ 元素 As 类型 ]
…
End Type 自定义数据类型实质上是由一些基本类型的数据元素构
成的结合体。其作用是:一旦用 Type 语句建立了自定义类型后,即可把它当作独立的数据类型用来声明自定义类型的变量。
返回首页
2.6 标识符命名规则
( 1 )标识符由字母( A~Z 和 a~z )、数字( 0~9 )或下划线( _ )组成。
( 2 )长度不能超过 255 个字符。( 3 )自定义的标识符不能和 Visual Basic 中的运
算符、语句以及系统已有的函数、过程名等关键字同名,同时也不能与系统已有的方法和属性同名。
返回首页
2.7 运算符和表达式
2.7.1 赋值运算符 2.7.2 算术运算符 2.7.3 比较运算符 2.7.4 连接运算符 2.7.5 逻辑运算符 2.7.6 运算符优先顺序
返回首页
2.7.1 赋值运算符 Visual Basic 中的赋值运算符“ =” 用来给变量、
数组或对象的属性赋值,即把运算符右边的内容(包括常量、变量、函数返回值或对象的属性)赋给运算符左边的变量或属性。语法格式如下:
Variable = 表达式 其中 Variable 可以是变量、数组的元素、变长
数组或运行时可写的对象属性。表达式可以是常数值、常量标识符、变量、表达式或函数调用等。其中,表达式必须有确定的值。
返回本节
2.7.2 算术运算符1 .加运算符( X + Y ) 功能:用来求 X 和 Y 两个数值表达式之和。2 .减运算符( X – Y ) 功能:用来求 X 、 Y 两个数值表达式之差。3 .乘运算符( X * Y ) 功能:用来求 X 、 Y 两个数值表达式的乘积。4 .除运算符( X / Y ) 功能:用来进行 X 除以 Y 的运算并返回一个
浮点数。
5 .整除运算符( X \ Y ) 功能:用来进行 X 除以 Y 的运算并返回一个
整数。6 .求模运算符( X Mod Y ) 功能:用来进行 X 除以 Y 的运算并且只返回
余数。7 .乘方运算符( X ^ Y ) 功能:乘方运算,用来求 X 的 Y次方。
返回本节
2.7.3 比较运算符 比较运算符包括: < (小于) 、 <= (小于或等
于)、 > (大于)、 >= (大于或等于)、 <>(不等于)和 = (等于) ,用来反映两个数值或字符串表达式之间的关系。关系成立,返回True (真);关系不成立,返回 False (假);两个表达式中若有 Null ,则返回 Null 。
比较运算符使用说明,如表 2-3 所示。
表 2-3 比较运算符的应用结果
如果 则
两个表达式都是数值 进行数值比较
两个表达式都是字符串 进行字符串比较
一个表达式是数值而另一个是字符串 数值表达式小于字符串表达式
返回本节
2.7.4 连接运算符 & 、 + 运算符都能用于两个字符串的连接,但
& 运算符强制两个表达式按字符串连接,尽管被连接的表达式不是字符串也是如此。而 + 运算符则较复杂,当两个表达式都是字符串时按字符串连接,否则视具体情况会有不同结果。因此,在进行字符串连接时,一般使用 & 运算符。
表 2-4 对 & 和 + 运算符的效果给出了比较。
表 2-4 & 和 + 运算符的比较
X Y X & Y X + Y
"1234" "5" "12345" "12345"
1234 5 "12345" 1239
"1234" 5 "12345" 1239
"123A" 5 "123A5" 报错
返回本节
2.7.5 逻辑运算符 逻 辑 运 算 符 包 括 :
Not (非)、 And (与)、 Or (或)、 Xor(异或)、 Equ (逻辑等于)和 Imp (逻辑蕴涵),用于表达两个逻辑表达式之间的关系。在进行逻辑运算时,只要参与运算的表达式中有一个为 Null ,则将返回 Null 。
各逻辑运算符的运算结果比较,如表 2-5 所示。
表 2-5 逻辑运算符运算结果比较
返回本节
2.7.6 运算符优先顺序
( 1 )算术运算符优先级由高至低是:指数运算( ^ )、负数(–)、乘法和除法( * 和 / )、整数除法( \ )、求模运算( Mod )、加法和减法( + 和 –)、字符串连接( & )。
( 2 )逻辑运算符优先级由高至低是:Not 、 And 、 Or 、 Xor 、 Eqv 、 Imp 。
返回本节