您现在的位置:首页 >> 网络教学 >> VB语言基础 >> 内容

常量与变量

时间:2009-6-18 20:54:48 点击:4325

VB程序中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。常量:在程序运行过程中值始终保持不变的量;变量:在程序运行过程中其值可以改变的量。

变量是计算机内被命名的存储位置,在程序代码中指定一个变量名,运行时系统就为之分配合适的存储空间,该存储单元中的值可以改变。对变量的操作即对该内存单元中数据的操作。内存存储信息的特点决定变量值的变化规则,即变量一经赋值,可以多次取出使用,其值保持不变,直到再次给该变量赋以新值,则新值代替旧值。

VB中,命名一个变量或常量要遵循以下规则:

(1)  必须以字母AZ(或a z)开头,由字母、汉字、数字、下划线组成的字符

(2)  名称中间不允许有空格

(3)  名称的最后一个字符可以是类型说明符号(规定数据类型的特殊字符)

(4)  VB中的关键字不能作为变量、常量名

(5)  常量或变量的名称中字母不区分大小写。如ABCabcaBc都认为是一个相同的名称。为了便于区分,一般变量名首字母用大写字母,其余用小写字母表示,而符号常量全部用大写字母表示。

例:以下为使用不当的变量名

            3a         以数字开头

            Q WE       出现了空格

            Dim        使用了VB的关键字

            False      使用了VB的关键字

一、常量

程序运行过程中,其值始终不变的量称为常量。在VB中常量有直接常量和符号常量两类。

()直接常量

直接常量是在程序代码中,以明显的方式给出的数据,可直接反映其数据类型;也可在常数值后紧跟类型符表明常数的数据类型。例如:

字符串常量  “vb”  、 “9823 

数值常量  123332&11.351.23E3

逻辑常量   True False

日期常量   #03/22/2008#   #10:12:30#

VB中还可以使用八进制和十六进制形式表示直接常量。八进制数以&O打头,十六进制数已&H打头,如&O67&H9AB4等。

()符号常量

符号常量又分为两种:系统内部定义常量和用户定义常量。

1.系统内部定义常量

内部或系统定义的常量是VB和控件提供的。这些常量可与应用程序的对象、方法和属性一起使用,在代码中可以直接使用它们。可以在“对象浏览器”中查看内部常量。选择“视图”菜单中的“对象浏览器”,则打开“对象浏览器”窗口。在下拉列表框中选择VBVBA对象库,然后在“类”列表框中选择常量组,右侧的成员列表中即显示预定义的常量,窗口底端的文本区域中将显示该常量的功能。

在用户为属性或方法变量输入数据时,应该检查一下是否有系统已经定义好的常量可供使用,使用系统常量可使代码具备自我解释功能,易于阅读和维护。例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:

           Text1.ForeColor=vbRed

这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。

又如,VB中经常使用VBNormalVBMinimizedVBMaximized来代替表示窗体状态的0(正常窗口)1(最小化窗口)2(最大化窗口),这样使用非常直观。

2.用户定义常量

尽管VB内部定义了大量的常量,但是有时用户需要创建自己的符号常量。用户定义常量使用Const语句来给常量分配名字、值和类型。声明常量的语法为:

[Public|Private]  Const  <常量名> [As <数据类型>]=<表达式> 

其中,<表达式>由数值常量、字符串等常量及运算符组成,可以包含前面定义过的常量,但不能使用函数调用。

例如,以下都是正确的用户定义常量:

Const PI=3.14159265358979

Public Const AMax As Integer = 9

Const YDate = #4/30/2008#

二、变量

在程序运行过程中,其值可以改变的量称为变量。变量由名字和数据类型确定。

VB中进行计算时,常常需要临时存储数据。可以使用变量存储临时数据。对于每个变量,必须有一个惟一的变量名字和相应的数据类型。

()声明变量

用语句声明。格式如下:

Dim/ Public/ Private / Static 变量名 [As 数据类型][, 变量名 [As 数据类型]…]

说明:

(1)   使用不同的命令关键字及不同的声明语句位置,使变量有不同的作用域。

(2)   变量名应遵从对变量的命名规则。

(3)   数据类型可以是前面列出的任何一种。

(4)   括号中的内容可以省略,省略As词条,系统默认为可变类型。一条语句可声明多个变量,以逗号分隔。

(5)   变量被声明后,VB即为之赋缺省的初值:数值型变量的缺省初值为0;字符串型为空串;布尔型为False ;日期/ 时间型为18991230000;可变型为空empty

(6)   对于字符串变量,根据其存放的字符串长度是否固定,其定义方法有两种:

命令关键字 字符串变量名 AS String         声明不定长的字符串。

命令关键字 字符串变量名 AS String*字符数  声明定长的字符串。

VB中使用一个变量时,可以不加任何声明而直接使用,叫做隐式声明。使用这种方法虽然简单,但却容易在发生错误时令系统产生误解。所以一般对于变量最好先声明,然后再使用。声明一个变量,主要目的就是通知程序以后在程序中可以使用这个变量了。所谓显式声明,是指每个变量必须事先做声明,才能够正常使用,否则会出现错误警告。

设置显式声明变量的方法有以下两种:

1)在各种模块的声明部分中添加如下语句:

Option  Explicit

2)在“工具”菜单项中选择“选项”,在出现的对话框中选择“编辑器”选项卡,再将其中的“要求变量声明”选项前的复选标记选中即可。只是此种方法只能在以后生成的新模块中自动添加Option Explicit语句,对于已经存在的模块不能做修改,需要用户自己手工添加。

变量可被声明为在不同范围内使用,如下所示:

1)普通局部变量:这种变量只能在声明它的过程中使用,即不能在一个过程中访问另一个过程中的普通局部变量。而且变量在过程真正执行时才分配空间,过程执行完毕后即释放空间,变量的值也就不复存在了。

声明此类变量的格式如下:

Dim  变量名  [As 数据类型名]

2)静态局部变量:这种变量也只能在声明它的过程中使用,属于局部变量。但是与普通局部变量的差别在于:静态局部变量在整个程序运行期间均有效,并且过程执行结束后,只要程序还没有结束,该变量的值就仍然存在,该变量占有的空间不被释放。

声明此类变量的格式如下:

Static 变量名 [As 数据类型名]

3)模块变量:这种变量必须在某个模块的声明部分进行预先声明,可以适用于该模块内的所有过程,但对其他模块内的过程不能适用。

一般在声明此类变量时,使用如下格式:

Private 变量名 [As 数据类型名]

4)全局变量:这种变量也必须在某个模块的声明部分进行预先声明,可以适用于该模块及其他模块内的所有过程,也即在整个程序内有效。

一般在声明此类变量时,使用如下格式:

Public 变量名 [As 数据类型名]

在使用时,前两类局部变量使用的机会比较多,尤其是使用局部变量具有一大好处:可以在多个过程中使用同一个变量名字。因为局部变量只在此过程中使用,所以与其他过程中的变量重名不会出现混淆的情况。

在使用后两类模块中的变量时,如果出现重名的情况,可以在使用时用模块名加变量名的方法来区分重名的不同变量。例如:在一个模块Module1中声明了一个模块变量x,而在另一个模块Module2中也声明了一个模块变量x。则使用Module1中的变量x时,可以用Module1.x的格式来引用;而使用Module2中的变量x时,可以用Module2.x的格式来引用。

() 变量赋值

在声明一个变量后,要先给变量赋上一个合适的值才能够使用。给变量赋值的格式如下:

变量名 = 表达式

可以使用一个表达式的数值来给某个变量赋值。一个普通的常量、变量均属于简单的表达式。

例如,给一个变量X,可以使用如下几种表达式进行赋值:

X = 5

X = Y

X = X + 1

其中的Y是一个已经赋过数值的变量。以上三个赋值语句都是合理的,均将右边表达式计算后的数值赋给变量X

其中:

1.    赋值号左边只能是变量,不能是常量、常数符号或表达式;赋值号右边的表达式可以是任何类型的表达式或常量值,一般其类型应与变量名的类型一致。

2.    一个赋值语句只能对一个变量赋值。如出现a=b=c=1式的赋值为错误的。

3.    不能把字符串的值赋值给数值型变量。

4.    同为数值型时,右边的数值类型转换为左边的变量名的类型后赋值。

5.    赋值语句类似A=A+X的语句很常用,起累加作用。

例如:Dim a AS Integerb AS Integer

a=5

b=b+1

() 引用变量

在需要使用变量中的值时,必须引用变量的名字来取出其中存放的数值。使用时,直接在需要用数值的位置上写上变量的名字,系统会自动从变量中取出相应的数值进行计算。

例如:将变量Y的值赋给变量X,就必须引用变量Y,将其中的数值取出赋给X,也即将变量Y的值存放在变量X的内存空间中。使用代码如下:

X = Y

作者:Admin  
  • 上一篇:数据类型
  • 下一篇:运算符和表达式
  • 本类热门
    本类推荐
    本类固顶
    • 没有
  • VB程序设计学习网站(赣南师范学院) © 2008 版权所有 All Rights Reserved.
  • 地址:江西省赣州市经济技术开发区 赣南师范学院数学与计算机科学学院 邮政编码:341000
    Email:ZQ188@163.com 技术支持QQ:87319633 移ICP备10086号
  • GnsySjxy! V2.4