3.2 VB的语言基础
; b: U r4 v' ?5 ? 1.数据类型 u8 o3 y2 s% P3 h7 G/ V! x- m
1)VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。
1 B ~; `/ b. W& o! S7 z0 m 2) 逻辑型数据只有True 和False两个值,转换成整型时,True=-1 ,False=0,将其它类型转换成逻辑型时,非0数转换为True ,0转换为False。! }- H9 P: f: F' {$ i6 h" ]( U$ v! Y
3) 字符型可以包括所有的西文字符和汉字,字符必须用双引号括" "起来, 如:"abc123"
! ~' K7 T9 ?6 `9 a3 ^) B1 J 4)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,0。5为中午12点,负数表示是1899年12月31日前的日期和时间)。& A* x$ j, r c& Q4 T' Z" X$ S
如:#3/22/2002# #2002-3-22 14:30:20#% x' f% u9 D: i9 c
Dim T As Date
5 a( Q2 Z: s" L' o% O4 i, d T=-2.5' K. G0 ]9 ?3 s9 v9 I6 O k0 t
Print T ' 打印出来的结果是1899-12-28 12:00:00" Y0 K: G- S# ^, _5 J
5)任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。" E# h9 s' _3 ~& \$ i2 _
2. 变量与常量( a- [0 O7 A( ^2 o' C# A& x' ?
(1)变量或常量的命名规则
+ @2 n2 L/ K) q' d 1) 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度≤255个字符;
f% O! b. Q3 Z( A% B# m 2) 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim 、Sin
! }2 d% ^+ G! v* e+ ?! X$ j( H 3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示
) b7 U1 q* `$ H- Z3 _! _* k 4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。, G ~1 c" |+ x% v; n* |; E2 ^+ f& G
(2)变量声明
0 k3 |4 H3 X, G* e; V' G5 @ 1)用Dim语句进行显式声明# d; N8 V6 Y8 H* U4 c
语句形式: Dim 变量名 [As 类型] 如: Dim intX As integer1 l4 m1 t; @ |* h. Y
说明:·如果没有As 类型,则默认为变体类型。
& L" o5 j' B/ w1 ` ·可在变量名后加类型符来代替As 类型 如: Dim intX%
/ v: D/ a6 l9 M. \7 L ·一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用;
c8 k1 c/ c% F; X: [ ·字符串变量根据其存放的长度是否固定,定义方法不同:
+ u& ]# N% e2 J8 F 定长字符串: Dim strA As String*10
& m2 i2 v6 h1 o; r/ C 表示最多存放10个字符,如果赋值不足10个,则右补空;若多于10个,则多余部分截去。
' e8 u/ u: |2 f 不定长字符串:Dim strA As String ’最多可存放2MB个字符6 K5 r1 s& w0 u# r8 i S2 K# Q
2) 隐式声明( \( ^6 j% t( _2 R) ^& }7 u. I
VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。. b9 Y$ g' r( t( y3 l9 n! f
隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用Option Explicit 语句来强制显式声明所有变量。
1 C* [. F4 _* v: F (3)常量; P, r& E& a% L. J2 D( Y
1)直接常量) m9 W4 R% X8 J8 V
指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。; w; o4 o/ G1 w# C
八进制常数: 在数值前加&O ,如 &O123
" j$ m; i; n d( k0 N( I0 @ 十六进制常数:在数值前加&H ,如&H123* q" I. f r0 w6 Y9 Z+ ^/ \ n
2)用户声明的符号常量
* j N" c% g5 x" \+ a1 e2 q 用Const来声明: Const 符号常量名 [As 类型] = 表达式
5 G# m# Q5 G! k/ B2 {0 F% G 如:Const PI=3.14159 '声明了常量PI,代表3.14159,单精度型9 \7 H9 p) @. W. x0 l" D$ T& d/ z/ S
Const MAX As Integer=&O144 ''声明了常量MAX,代表八进制数144,整型
- q/ Z- c0 S& _- n0 y Const COUNT#=45.67 '声明了常量COUNT,代表45.67,双精度型6 R; ?6 x2 h: Y& O# q- n( c
3)系统提供的常量
& a5 f3 Z/ P" I2 i+ K) b0 r' L. Y 系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。% a( a* W5 |, @5 [8 [
如:Form1.WindowsState=vbMaximized 表示将窗口极大化。" u/ \2 J- G9 a; @% z
3. 运算符$ K( s; m' |* x; C
(1)算术运算符
6 L. B0 T. ]3 u; w! F* C6 L 算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。
" s$ s& \3 Z( A( C+ I (2)字符串运算符
# E' J6 c/ l! G: _6 Y (3) 关系运算符2 \# f `) o" V9 z
1)如果两个操作数都是数值型,则按其大小比较
" D' _: s. @ r. K; _/ `, W4 w( } 2) 如果两个操作数都是字符型,则按字符的ASCII码值从左到右一一比较/ ~/ P2 h6 T" ?% Z/ L) m
3) 汉字字符大于西文字符+ A+ P; i/ i0 ]' I2 e
4) 关系运算符的优先级相同- `' k2 w* x3 Q U8 M: ]$ w( Z7 Y
5) VB6.0中Like运算符与通配符的使用:" A2 G- s- q" [) [" ^1 q6 ^
?——表示任何单一字符3 w" M! t8 |2 M ^
*——表示0个或多个字符
- V; C+ `0 q5 X5 V0 R' T& [" Q #——表示任何一个数字(0 - 9)% M [4 c% }3 M: f! H/ @, ^' W
[字符列表]——表示字符列表中的任何单一字符( H5 f1 m' Q; H" B% X: h
[!字符列表]—— 表示不在字符列表中的任何单一字符1 H! s/ k4 S5 D C5 M6 `
(4) 逻辑运算符
# r( d( d( I: [" c7 M 1)若有多个条件时,And必须全部条件为真才为真;
' n- C% m& D8 [" u/ T1 r3 r4 r Or只要有一个条件为真就为真。
* L3 C- M. J+ f! B7 E) c* N 2)如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。And运算常用于屏蔽某些位;Or运算常用于把某些位置1。9 F2 J& ?/ i8 W+ Y1 s6 K g
如:12 And 7 表示对1100与0111进行And运算,得到二进制值100,结果为十进制4。
/ E5 b9 ]# @& q' _ L: h& j. T% N" C# j- p
3)对一个数连续进行两次Xor操作,可恢复原值。在动画设计中,用Xor可恢复原来的背景。 |