- 21天学通Visual Basic
- 马军等编著
- 1774字
- 2020-08-27 03:35:41
2.4 变量
变量是指在程序运行时其值可以被改变的量,用来保存程序中的临时数据。与常量相同,变量在计算机内部也是对应于一定的内存单元。对数据的操作通过变量名来进行。在Visual Basic 6.0中,变量可以分为4类:普通局部变量、静态局部变量、模块级变量和公用变量。本节就这4种变量的声明和使用分别予以介绍。
2.4.1 普通局部变量
普通局部变量是只能在定义的函数或者过程中访问的变量。普通局部变量在所需要使用的函数或过程中声明,其生存周期从函数或过程调用开始到函数或过程结束终止。声明普通局部变量的语法:
Dim<变量名>[As<常数的数据类型>]
参数说明如下所示。
· Dim:变量定义关键字。
· 变量名:指定该变量的名称。
· 变量表达式:变量定义的数值、字符串等常数。以下代码演示了部分普通局部变量的声明示例。
01 Dim strName As String '定义字符串型普通局部变量 02 Dim bool As Boolean '定义逻辑型普通局部变量 03 Dim nCount As Integer '定义整数型普通局部变量
注意
在进行变量声明时将整数型变量初始化为0,字符串变量初始化为空。
2.4.2 静态局部变量
静态局部变量是比较特殊的一种局部变量。与普通局部变量相比,普通局部变量生存周期从函数或过程调用开始到函数或过程结束终止,而静态局部变量在每次调用后不会被释放,即静态局部变量的生存周期为整个程序运行期间。这个特点非常有用,常常用来计算程序中某个事件发生的次数。声明普通局部变量的语法:
Static<变量名>[As<常数的数据类型>]
参数Static表示静态局部变量定义关键字。以下部分是静态局部变量的声明示例。
01 '定义字符串型静态局部变量 02 Static strName As String 03 '定义整数型静态局部变量 04 Static nCount As Integer
注意
读者必须将静态局部变量和普通局部变量的生存周期区分清楚。静态局部变量的生存周期为整个程序运行期间,而普通局部变量生存周期从函数或过程调用开始到函数或过程结束终止。
【范例2-4】如示例代码2-4所示,代码中定义了普通局部变量和静态局部变量,可以很清楚地说明普通局部变量和静态局部变量生存周期的不同。
示例代码2-4
01 '普通局部变量与静态局部变量的区别 02 Private Sub cmdCount_Click() 03 Dim count1 As Integer '定义普通局部变量count1 04 Static count2 As Integer '定义静态局部变量count2 05 count1 = count1 + 1 '当用鼠标单击“计数”按钮时 06 count2 = count2 + 1 'count1和count2都自行加1 07 lbCount1.Caption = "普通局部变量计数值:" & count1 '显示普通变量的结果 08 lbCount2.Caption = "静态局部变量计数值:" & count2 '显示静态变量结果 09 End Sub
【运行结果】当用鼠标单击“计数”按钮时,分别用普通局变量和静态局部变量计数。运行程序,单击“计数”按钮11后,可以看到普通局部变量的计数值为1次,而静态局部变量数值为11次。程序将“计数”按钮的单击次数记录下来,如图所示。
图2.8 静态局部变量的引用
【代码解析】通过以上的程序可以看到,每单击一次“计数按钮,普通局部变量count1都重新赋一次初值0。经过加一运算后,count1的值为1,在单击按钮这个过程结束后count1被释放。当下一次单击“计数”按钮时,重复这一过程,所以count1显示的值一直为1。而静态局部变量count2在每次单击后数值都会被保留,所以当单击“计数”按钮11次后,count2的值经过了11次加一运算为11。从而实现了按钮单击的计数功能。
2.4.3 模块级变量
模块级变量是只能被所在模块中的过程访问的变量。其作用范围在模块内部,不能被其他模块访问。如果有同名的公用变量同时存在,所访问的变量是该模块的模块级变量。声明模块级变量的语法:
Private /Dim<变量名>[As<常数的数据类型>]
参数说明如下所示。
· Private/Dim:声明该变量只能在该声明的模块中使用。建议用Private来声明模块级变量。
· 变量名:指定该变量的名称。
以下代码是模块级变量的声明示例。
01 Private nCount As Integer '定义整数型模块级变量nCount 02 Private strAddr As String = "上地东里" '定义字符型模块级变量strAddr
提示
对于一些经常用到的通用变量,可以定义为模块级变量,但不能随意地将变量定义为模块级变量。大量的模块级变量会导致计算机资源的浪费。
2.4.4 公用变量
公用变量可以在程序所有过程和函数中使用。公用变量通常在标准模块的通用声明部分中使用Public关键字来声明。声明公用变量的语法:
Public <变量名>[As<常数的数据类型>]
参数说明如下所示。
· Public:声明该变量为公用变量。
· 变量名:指定该变量的名称。
· As<常数的数据类型>:指定变量声明的数据类型。
以下是公用变量的声明示例。代码如下所示。
01 Public Const bool As Boolean = False '定义逻辑型公用变量bool 02 Public Const nDog As Integer = 2 '定义整数型公用变量nDog 03 Public Const strAddr As String = "上地东里" '定义字符型公用变量strAddr 04 Private Const dateRem As Date = #01/01/2000# '定义日期型公用变量dateRem
提示
公用变量可以在程序中标识一定的条件关系。例如,在数据库编程中常常会定义一个逻辑型公用变量来标识用户的登录情况,通过该变量来判断当前用户是否已经登录。