Visual Basic程序设计教程(第3版)
上QQ阅读APP看书,第一时间看更新

2.2 变量

在程序中处理数据时,对于输入的数据、参加运算的数据、运行结果等临时数据,通常将它暂时存储在计算机的内存中。变量就是命名的内存单元位置,一旦定义了某个变量,该变量表示的都将是同一个内存位置,程序员使用变量名,就可在程序的其他部分引用该内存位置,直到释放该变量。

一个变量在一个时刻只能存放一个值。如果某一个变量在程序运行中数据发生变化,则现行值将取代原来的数据。例如将整型数6放到变量a中,则原来的数被清除,现行值6就成为变量a的值。

变量有两个特性:名字和数据类型。变量的名字用于在程序中标识变量和使用变量的值,数据类型则确定变量中能保存哪种数据。

在VB中,变量有两种形式:属性变量和内存变量。在窗体中设计用户界面时,VB会自动为产生的对象(包括窗体本身)创建一组变量,即属性变量,并为每个变量设置其默认值。这类变量可供程序员直接使用,如引用其值或赋予新值。

由于属性变量是VB系统自动创建的,所以无须程序员费心。内存变量则要靠程序员根据程序需要创建,下面主要介绍内存变量的建立方法。

2.2.1 变量的命名规则

变量代表在程序执行过程中其值可以改变的存储单元,这个存储单元的名字称为变量名。

变量名可以是任何有效的标示符,但不能是关键字(VB的关键字是指VB中系统已经定义的词,如命令语句、内部函数、运算符名等),并且必须以字母开头,如:sum,a2,不能是2a。变量名的最大长度是255个字符,只能含字母、数字和下画线。

取名最好使用有明确实际意义和容易记忆以及通用的变量名,即要见名知义。比如用sum(或s)代表求和,用difference(或d)代表求差等。

VB是不区分大小写的,所以认为a1和A1是相同的。关键字也是不区分大小写的,VB自动地设置关键字的第一个字母为大写,因此输入的dim将转变为Dim。Microsoft推荐的变量命名规则为:变量名以小写字母开头,第一个单词后面的每个单词都以大写字母开头,其他字母小写,以保证对变量名能够进行正确的断句。例如:userTable、name、dateHired等。

在为变量命名时还应注意:

1)尽可能简单明了,尽量不要使变量名太长,因为太长了不便于阅读和书写。

2)变量名不能与过程名和符号常量名相同。

3)变量名在同一个范围内必须是唯一的。

2.2.2 变量的声明

与其他语言不同,VB不要求程序员在使用变量前特别声明。如果没有声明变量,VB使用称为“可变类型(Variant)”的默认数据类型。然而,使用可变类型存储通用信息有两个缺点:一是它会浪费内存空间,二是在与某些数据处理功能同时使用时可变类型可能无效。所以,在使用变量前最好先声明变量,把将要用到的数据类型告诉程序。

1.声明变量

所谓声明变量,就是用一个语句来定义变量的类型,又称为显式声明。声明变量的语句并不把值分配给变量,而是告知变量将会包含的数据。声明语句的语法为

{Dim|Private|Static|Public}<变量名>[As<类型>][,<变量名2>[As<类型2>]]…

说明:

1)Public语句用来声明公有的模块级变量,Private或Dim语句用来声明私有的模块级变量,Dim或Private或Static语句来声明过程级局部变量(参见第8章)。

2)<变量名>遵循标准的变量命名约定。

3)<类型>用来定义被声明<变量名>的数据类型或对象类型。变量的数据类型可以是表2-1中的类型,也可以是用户自定义的类型。例如:

使用声明语句建立一个变量后,VB自动将数值类型的变量赋初值0,将字符或Variant类型的变量赋空串,将布尔型的变量赋False。

使用变量时,VB会自动转换变量值的类型,使变量的值与声明语句中的名字相匹配。例如,声明变量为

Dim count As Integer当为该变量赋值时:

count=1.5 '数1.5为单精度浮点型Single变量count会自动将1.5转换为整型数(Integer)2(四舍五入)。

2.强制显式声明变量语句Option Explicit

声明变量可以有效地降低错误率。为了避免写错变量名引起的麻烦,可以规定在使用变量前,必须先用声明语句进行声明,否则VB将发出警告“Variable not defined”(变量未定义)。要强制显式声明变量,可以在类模块、窗体模块或标准模块的声明段中加入语句:

Option Explicit或选择“工具”菜单中的“选项”命令,在打开的“选项”对话框中选择“编辑器”选项卡,再复选“要求变量声明”选项,如图2-1所示。

图2-1 “选项”对话框

Option Explicit语句的作用范围仅限于语句所在模块,所以,对每个需要强制显式变量声明的窗体模块、标准模块及类模块,必须将Option Explicit语句放在这些模块的声明段中。如果选择“要求变量声明”命令,VB会在后续的窗体模块、标准模块及类模块中自动插入Option Explicit,这一语句总是显示在代码编辑窗口的顶部,如图2-2所示。

图2-2 代码窗口

注意:VB不会将Option Explicit加入到现有代码中,必须在工程中通过手工将Option Explicit语句加到任何现有模块中。方法是:激活代码编辑窗口,从对象下拉列表框中选择“(通用)”,从过程下拉列表框中选择“(声明)”,在图2-2所示的位置输入Option Explicit。