第四章7 U Z/ X. b4 X X
一、数据类型8 K: }: `* J) I1 f2 ^ j2 V$ Y
(一)基本数据类型* H. v$ g! a: B7 s
数据类型Visual Basic6.0提供的基本数据类型主要有字符串型和数值型,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。+ p7 [ H) ?2 f: F2 g1 F
(二)用户定义的数据类型# j3 A4 O E9 p3 {0 ]. P @" Y
用户可以利用Type语句定义自己的数据类型,其格式如下:Type 数据类型名
: D. e* g& y- m- ]* g5 ^ 数据类型元素名 As 类型名 数据类型元素名 As 类型名 ……( A2 V$ S0 R" }% Y+ F; u; ?& Q" W( y
End Type
( ?) K2 D2 Y: H4 T# ?9 z4 E (三)枚举类型
- k3 A; E' `) R 所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
3 m* o7 d- X+ S; S% |& S 枚举类型放在窗体模块、标准模块或公用类模块中的声明部分,通过Enum语句来定义,格式如下:' m$ B8 Z1 Q9 F9 Y1 d
[Public|Private]Enum类型名称 成员名[=常数表达式] 成员名[=常数表达式] ……$ }: ]) O1 _" c% v( K; A9 o' `
End Enum
1 i4 ]4 o3 D j p, L+ U, \ 二、常量和变量
+ d4 C0 ^" Y* G/ z5 z: @6 e (一)常量
& h. t7 e7 I+ a Visual Basic中的常量分为两种,一种是文字常量,一种是符号常量。0 K4 z+ j0 g* n# U
(二)变量. C9 v `$ f% o+ k' g. Y
1.命名规则, F( w( z0 L" \5 q7 Y' k, C) @1 {+ ^
变量是一个名字,给变量命名时应遵循以下规则:
, ]: t- w- v0 p w4 @$ i (1)名字只能由字母、数字和下划线组成;3 x5 K* K: S# o; S: F
(2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符; A. U Q8 d5 |' k; u
(3)名字的有效字符为255个;; e+ t8 u; n _( i ?
(4)不能用Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。
; w2 b# l/ s1 k+ @8 {6 w* o/ ~ 2.变量的类型和定义$ _' p- J) ]5 {$ h
任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在Visual Basic中,可以用下面几种方式来规定一个变量的类型:
* B5 O- t, H+ {" p9 v" p (1)用类型说明符来标识。* O, j5 R. l- C/ U3 f+ J& f' }
(2)在定义变量时指定其类型1 e0 K, S9 V/ X3 B
(3)用DefType语句定义( \% o- A" f8 l( I) `: [
(4)用类型说明符定义的变量,在使用时可以省略类型说明符。# B+ B7 M4 L" m9 I
(三)变体类型变量
3 d$ b7 e& l' D/ @ 1.Variant变量的定义' ^- A. p4 f+ J. [7 x3 q1 B+ u
Variant变量可以用普通数据类型变量的格式定义,也可以默认定义。% w, l' L; ~/ m) [) K3 K# G
2.Variant变量值的内部表示% H; P# e. R2 |
Variant变量所存放的值都有一个内部表示,在执行比较等操作时,Variant变量根据其内部表示确定如何操作。向Variant变量赋值时,Visual Basic以最紧凑(需最小存储空间)的表示方式存储该值,并可根据需要改变表示方式。" O3 R3 N' G5 V
3.Variant变量中的数值2 i5 B9 ]: ?, D8 F0 R
在Variant变量中存放数值时,Visual Basic以尽量紧凑的方式存储。
- F& J+ n( Z* n% F/ g) W( N 4.Variant变量中的字符串
( g7 Y* Z- z% ~6 G0 ], A" { 在对存放字符串的Variant变量进行操作时可能会产生歧义。当用“+”运算符对两个Variant变量进行运算时,如果两个变量都是数值,则执行数值相加运算;如果两个变量中存放的都是字符串,则执行字符串连接操作。如果一个变量中是数值而另一个变量中是字符串,则情况就复杂了。Visual Basic先试着将字符串转换为数值,如果转换成功则进行相加运算,不成功则把另一个数值转换成字符串,然后对两个字符串进行连接,形成一个新的字符串。
0 `; j; a( H$ r. y d) M 5.Variant变量中的空值(Empty)( ]4 T( F0 S) T |+ \
Variant变量在被赋值前为空值(内部表示为Empty或0),它不同于数值0,不同于空字符串(″″),也不同于Null(见下)。通过IsEmpty函数可以测试一个变量自建立以来是否被赋过值。7 M# v" Z9 `& y r' z- u5 @
6.Variant变量中的Null值2 [2 q U% }( x: Z* Z
Variant变量可以取一个特殊值---Null,该值通常在数据库应用程序中用来指出未完成或漏掉的数据。Null值具有以下一些特性;' v I& ]* Q+ a$ E, T
(1)“蔓延性”。如果表达式中任一部分为Null,则整个表达式的值即为Null。
! [) O6 ]+ U- J8 T" u (2)如果向函数传送Null、值为Null的Variant变量或结果为Null的表达式,则会使大多数函数返回Null值。
5 z5 |" O; a. t2 \; K (3)Null值会在返回Variant变量的内部函数中蔓延。
( T" Y& r4 F9 _- u 三、变量的作用域* ~+ Z# Q! b* `5 g- S
(一)局部变量与全局变量
' |9 O; E+ V( O' {9 _ 根据变量的定义位置和所使用的变量定义语句的不同,Visual Basic中的变量可以分为3类,即局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。# Y- M% m: g* _& \9 K* V/ ^2 W
(二)默认声明
; F3 ^0 M0 C' C: G 默认定义的变量不需要使用Dim语句,因此比较方便,并能节省代码,但有可能带来麻烦,使程序出现无法预料的结果,而且较难查出错误。& L4 l* m8 B- ]1 k4 c1 W& Q) |( X
四、常用内部函数
4 q9 H9 Y( O/ r$ C" ]! x# b (一)转换函数) Y3 H f% `5 @
1.取整函数Int和Fix
9 F% R# x7 j6 m! q 2.数制转换函数7 z+ e4 T; b5 S! w$ U4 I* o6 l
3.类型转换函数
3 `8 ]0 F& R% u J 4.格式输出函数
6 U" S3 I; m2 X( z (二)数学函数
) S. D4 E4 y( B4 i 1.三角函数
- Y) x% D M. Y6 E 2.绝对值函数(Abs)# c- ?+ r$ Z3 [# y
3.符号函数(Sgn)
, U ^( W; u, p 4.平方根函数(Sqr)2 x( g6 }/ D* S9 b9 F3 K
5.指数和对数函数(Exp、Log) |