我也会VB编程基础篇 共50页[1 2 3 4 5 6 7 >»<... 最后一页]

变量的定义及赋值

一、为什么要对变量进行定义

变量的定义在有的书中也称之为变量的声明。在绝大多数的编程语言中,对于变量都是要求先定义,后使用。也就是说预先告诉编译器在程序中要使用哪些变量,这些变量又是什么类型的,以便于为这些变量分量内存空间、预赋初值等。   

VB使用一个变量时,可以不加任何声明而直接使用。使用这种方法虽然简单,但却容易发生错误。例如某个变量没有定义就直接使用了,当再次使用这个变量时却不小心写错了其名称,这时系统找不到这个错误的名称对应的变量,只能将它作为一个新变量来使用,这样就会导致错误,与程序设计者原有的想法就会有所差别。   

所以对于变量最好先定义,然后再使用。这样可以提高程序的可维护性,大大减低了出错的概率。   

二、变量的强制定义

前面已经说明了不定义变量可能会带来的麻烦,因此如果我们不想出现此类错误的话,可以设置让VB强制必须定义变量。设置强制定义变量的方法有以下两种:

 (1)在各模块的声明部分中添加如下语句:Option Explicit。这种方法需要手工在各模块添加该语句,有点麻烦,因此,通常使用第二种方法。

 (2)在“工具”菜单中选择“选项”命令,将会弹出“选项”对话框,再将其中的“要求变量明”选项前的复选标己选中,最后再点击“确定”按钮即可。用这种方法VB将会在以后生成的新模块中自动添加Option Explicit语句,对于已经存在的模块则需要用户自己手工添加。设置强制定义变量

当模块中出现“Option Explicit'’语句后,运行程序编译器将会自动检查每个变量是否已经定义。如果使用的变量还没有定义,则程序运行时VB将会发出一个错误的提示信息。在上图所示的例子中,没有定义“变量x”就对它赋值,于是就出现了“变量未定义” 错误提示。

三、变量的显式定义

变量的显式定义就是指在程序中明确出现定义变量的语句。变量显式定义的格式为:

Dim变量名(As变量类型)[变量名As变量类型1,…

其中的“Dim”是定义变量的关键字;“变量名”即要定义的变量的名称,要符合前面介绍过的变量命名规则;“变量类型”是用来确定这个变量所存储的是何种类型的数据。下面举几个个例子:

    Dim age AS Integer

    Dim average AS Single

    Dim text AS String

    Dim datel As Date

    Dim flag As Boolean

第一行定义的变量age是整型,也就是说它是用来存放整数的,第二行定义了一个用来存储小数的单精度浮点型变量,第三行定义的是存储字符串的字符型变量,第四行定义了一日期型变量,最后一行定义了存储真或假的布尔型变量。

上面定义变量格式中我们可以看到,其中有两个用中括号()括起来的内容,这表示其:  的内容是可选的。后面一个的意义是说可以在一行中定义一个或多个变量。如:

    Dim  a  As  Integer,  b As  Long,  C  AS  String

这行代码是完全合法的,它定义了三个变量,分别是整型、长整型和字符型的。

另外,“As变量类型”部分也是可以省略的,也就是说在定义变量时可以不指明它的类型此时这个变量默认为是变体型的。如:

    Dim X

这就定义一个变体型的变量“x"

在—行中定义多个变量时,必须说明每—个变量的类型,不能因为定义多个同一类型的变量而想当然的只说明最后一个变量的类型,却省略说明其它变量的类型。例如: Dimm a,b,C AS Integer在这运行代码中,编程者的本意是要定义三个整型变量a,b,c,但实际上程序运行后,只有变量c是整型的,而变量a、b都是变体型。上面这行代码与如下三行代码等价 Dima Dim c As Intege这个问题请读者在编程时一定要注意,否则可能会引起错误。

四、几种特殊类型变量的定义

在这里,我们主要介绍在前面“变量的作用域”中提到的几种变量的定义方法。

过程级变量的定义

过程级变量是在过程定义的,其定义方法如前所述。例如在下图中定义的两个过程级变量。过程级变量的定义在此例中定义了两个过程级变量,其中变量a是整型的,变量b是日期型的。模块级变量的定义模块级的变量必须在各模块的“(声明)”部分定义,它不仅可以用“Dim”关键字定义,也可以用Private关键字定义,两者定义的格式是一样的。

在此例中定义的两个模块级的整型变量,以后在此模块中的任一过程都可使用这两个变量。使用“Dim”关键字和使用“Private”关键字的效果是一样的。

全局变量的定义

全局变量是在标准模块的“(声明)”部分定义,除了将“Dim'’换成“Public”关键字,定义格式如前所述。在此例中定义了两个全局变量,它们能被工程的任一模块、过程访问。静态变量的定义

静态变量的定义

格式也与上述各种变量的定义格式一致,只不过它用的是“Static”关键字。

五、变量的赋值

使用变量的目的就是用它来存储某些在程序运行过程中会发生变化的数据,那么怎样对它进行赋值呢?

其实在定义变量的时候,VB就已经为我们给变量赋了初值,例如:整型变量的初值是0,字符型变量的初值是空字符串,布尔型变量的初值是假(False)

变量的初值当然不能满足我们的需要,因此要将需要保存的数据赋给变量。对变量赋值是通过赋值语句进行的,其格式为:

Let变量名=表达式

例如,如果已经定义了整型变量“a”,字符型变量“b”,这时就可以在程序中对它们赋值了:

Let a=l0

Let b=”文本

对象型变量的赋值与其它变量的赋值不一样,其格式如下:

Set对象型变量=对象名

对象型变量的值是对象名,并且需要在前面加上关键字“Set"。例如已经定义对象型变量“X”,并要将命令按钮对象赋给该变量,可以使用如下的语句进行赋值:

 Set x=Commandl

另外,关键字“Let”是可以省略的,并且在通常情况下,人们习惯上也是省略这个关键字的。例如:

    a=l0

    b=”文本

上面这两行语句是完全合法的。

我也会VB编程基础篇 共50页[1 2 3 4 5 6 7 >»<... 最后一页]