Visual Basic 开发从入门到精通
上QQ阅读APP看书,第一时间看更新

2.3 使用变量

知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\使用变量.mp4

变量是指在程序执行的过程中其值可以改变的量。每一个变量会在计算机内存中占据一个存储单元,不同类型的变量在内存中占有的空间也不相同。在本节的内容中,将详细讲解Visual Basic 6.0变量的基本知识。

2.3.1 变量的命名规则

在Visual Basic中命名变量时需要遵循一定的规则,规则的具体说明如下所示。

❑ 必须是以字母开头。

❑ 变量名最长为255个字符。

❑ 大小写字母同等对待,不区分大小写。

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

❑ 不能使用系统保留字。

微软建议的Visual Basic 6.0变量命名规则是:以小写字母开头,第一个单词后的每一个单词都以大写字母开头,其他字母小写。例如,myName和name。

2.3.2 声明变量

声明一个变量即事先将变量的有关信息通知程序,以便系统可以确定变量的存储格式。在大多数的高级编程语言中,使用变量时必须遵循“先声明,后使用”的原则。但是在VB中,变量在使用时不一定要“先声明,后使用”,它有显式声明、隐式声明之分。

1.隐式声明

即不声明而直接使用,变量以Variant类型处理。另外,通常在变量名后加特定的后缀字符,通过后缀字符来隐式说明变量的类型。一般后缀字符和变量声明的关系如下所示。

❑ 后缀字符为“%”时,隐含表示变量类型为整型。

❑ 后缀字符为“&”时,隐含表示变量类型为长整型。

❑ 后缀字符为“! ”时,隐含表示变量类型为单精度浮点型。

❑ 后缀字符为“#”时,隐含表示变量类型为双精度浮点型。

❑ 后缀字符为“$”时,隐含表示变量类型为字符串型。

2.显式声明

显式声明的语法格式如下所示。

    [关键字] 变量名 [AS  类型]

其中,Visual Basic 6.0各变量声明“关键字”的具体说明如下所示。

❑ Dim:设置在窗体模块、标准模块或过程中声明变量。

❑ Private:设置在窗体模块或过程中声明变量,使此变量仅在该模块中有效。

❑ Static:设置在过程中声明静态变量,即使此过程结束,也仍然保留此变量的值。

❑ Public:设置在标准模块中声明全局变量,使此变量在整个应用程序中都能使用。

看下面的代码:

    dim temp as integer
    temp=2
    a=4

上面的代码分别显式声明了变量temp和隐式声明了变量a。

为了保证Visual Basic 6.0项目程序的健壮性,建议读者采用强制变量声明。在具体声明时,可以使用“Option Explicit”语句来设置项目强制显式声明。声明后一旦项目内有未声明的变量,则会弹出对应的错误提示。

在编写代码时,可以将“Option Explicit”语句加入到项目文件的声明段中,也可以通过如下流程来强制设置。

(1)依次单击Visual Basic 6.0菜单栏中的【工具】|【选项】,弹出“选项”对话框,如图2-1所示。

图2-1 “选项”对话框

(2)选择“编辑器”选项卡,勾选“要求变量声明”前的复选框,如图2-2所示。

图2-2 “编辑器”选项卡界面

经过上述流程设置后,用Visual Basic 6.0编写出的项目程序必须强制声明,否则将会出错。例如,下面的代码就是使用了强制声明语句。

    option explicit
    sub form_click()
      dim a as integer
      dim b as integer
      a=4
      b=5
    end sub

2.3.3 变量的数据类型

Visual Basic的标准数据类型有数值型、字符型、逻辑型、日期型、对象型和变体数据类型共6种,这6种标准类型的具体说明如下所示。

1.数值(Numeric)数据类型

数值数据类型有整型、浮点型、货币型和字节型4种,具体说明如下所示。

(1)整型。

整型是指不带小数点和指数符号的数,整型运算速度快、精确,但表示数的范围小。整型有整型和长整型两种。

❑ 整型(Integer):存储长度为2个字节(16位),数的表示范围是-32768~+32767。

❑ 长整型(Long):存储长度为4个字节(32位),数的表示范围是-2147483648~2147483647。

(2)浮点型。

浮点型由符号、尾数(Q)以及指数(J)3部分组成。指数分别用“E”表示单精度、“D”表示双精度。浮点数的符号均占1位。浮点数有单精度浮点数和双精度浮点数两种。

❑ 单精度浮点数(Single):以4字节形式存储(32位),可以精确到7位十进制数。单精度数的负数的范围是-3.402823E+38~-1.401298E-45;正数的范围是+10401298E-45~+3.402823E+38。

❑ 双精度浮点数(Double):以8字节形式存储(64位),可以精确到15~16位十进制数。双精度数的负数的范围是-1.797693134862315D+308~-.9406564584112465D-324;正数的范围是+4.940656458412465D-324~+1.797693134862315D+308。

注意:浮点数表示的数的范围大,但有误差,在做浮点数的运算时,应尽量使每一次运算的结果都在有效位数范围内;尽量不要使两个相差很大的数值直接相加或相减。

(3)货币型。

货币型数(Currency)是定点数,在内存中存储为64位(8个字节)整型的数值形式,其小数点左边有15位数字,右边有4位数字。取值范围是-922,337,203,685,477.5808~922, 337,203,685,477.5807。Currency数据类型通常被用于货币计算与定点计算领域中。

(4)字节型。

字节型数(Byte)是二进制数。其存储为单精度型、无符号整型、8位(1个字节)的数值形式,取值范围在0~255。

Byte数据类型在存储二进制数据时很有用。

2.字符(String)数据类型

字符数据类型用于存放字符数据,所谓字符型数据就是用双引号括住的字符串,例如“Abcde”和“Visual Basic欢迎你!”等。在字符串中每个字符占1个字节,字符数据的范围以字符串长度的大小来度量。

Visual Basic有两种字符串,分别是变长字符串和定长字符串。

(1)变长字符串。

变长字符串所占的空间大小为10个字节加字符串,最多可包含大约20亿个字符。变长字符串的定义格式如下。

    关键字  变量名AS  String

(2)定长字符串。

定长字符串所占字节就是字符串的长度,可包含1~216个字符。定长字符串的定义格式如下。

    关键字 变量名AS String*字符串长度

3.逻辑(Boolean)数据类型

逻辑数据类型变量主要用来进行逻辑判断,它的存储位数是16位。逻辑(Boolean)数据类型数据只有两个值,分别是True(真)或False(假)。

在Visual Basic中,逻辑数据可以转换成整型数据。这时,True转换为-1, False转换为0;而当其他类型的数据转换成逻辑数据时,非零数转换成True,0转换为False。

4.日期(Date)数据类型

日期数据类型用于表示和存储日期和时间的数据,它是按8个字节的浮点数存储。任何字面上可被认作日期和时间的字符(除汉字外),只要用磅号(#)括起来都可以认作为日期型数据。例如,#1 Jan,97#、#January 1,1999# 格式都可以看作为日期类型。

日期表示的范围是公元100年1月1日~9999年12月31日;时间表示的范围是:从0:00:00~23:59:59。

注意:当其他数据转换成日期型数据时,小数点左边的数值代表日期,而小数点右边的数值代表时间:0为午夜12点,0.5为中午12点;负数代表的是1899年12月31日之前的日期和时间。

5.对象(Object)数据类型

对象数据类型:存储为32位(4个字节)的数值形式,作为对象的引用。利用Set语句,声明为Object的变量可以赋值为任何对象的引用。例如下面的代码。

    Sub form_click()
        Dim Temp AS Object
        Set Temp =form1
    End Sub

6.变体(Variant)数据类型

变体数据类型也称为万用数据类型,这是一种特殊的数据类型,它所需类型可以根据上下文的变化而变化。除了定长的String数据及用户定义的类型之外,可以处理任何类型的数据而不必进行数据类型的转换。它是对所有未定义的变量的默认数据类型的定义。

Variant类型的数据可以根据运算的实际情况而“变体”, Visual Basic提供了一个函数VarType专门用来检测Variant中保存的数据类型,例如:VarType(123)的返回值为2,表示为整型。

VarType函数的返回值与数据类型的关系如表2-2所示。

表2-2 VarType函数数据类型检测