
3.2 变量和常量
在程序设计中,所需要的数据多以变量或常量的形式出现。本节主要介绍变量和常量的用法。
3.2.1 变量
变量是值可以改变的数据,在执行应用程序期间,用变量临时存储数据。例如,在关系式Y=3*X+6中,Y和X是变量。同一关系式,用不同的变量表示,作用完全相同。例如,N=3*M+6与Y=3*X+6表示的是相同关系,只是所用的名称不同。变量的使用包括变量的命名、变量的类型、变量的赋值等。
1.变量的命名规则
用户通过变量的名称使用变量,变量的命名要符合下面规则:
(1)变量名必须以字母或汉字(中文系统中可用)开头,由字母、汉字、数字或下画线组成。例如,Score、XM、地址_1等都是合法的变量名,而2X、X?y等都不是合法的变量名。
(2)变量名的长度应小于等于255个字符。
(3)Visual Basic不区分变量名中英文字母的大小写。如果两个变量名仅仅是字母的大小写不同,则Visual Basic将其视为同一个变量。例如,XY、Xy、xy等表示的是同一个变量。
(4)不能使用Visual Basic中的关键字作为变量名。例如,If、For等是不能用做变量名的。
(5)变量的命名最好是与其表达的意义有关,做到见名知意。
2.变量的声明
Visual Basic中,变量可以先声明再使用,也可以不声明,直接使用。在窗体或标准模块的通用段中,如果有Option Explicit语句,那么,在代码中用到的变量都必须先声明再使用;如果没有Option Explicit语句,那么,在代码中用到的变量可以声明,也可以不声明直接使用。对于初学者,为了调试程序方便,建议对使用的变量都进行声明。
(1)显式声明
在Visual Basic中,可以用Dim语句显式声明变量,其格式为:
Dim <变量名1> [As <类型关键字>] [,<变量名2> [As <类型关键字>]],…
或
Dim <变量名> [<类型符>] [,…]
其中:
·<变量名>:应符合变量名的命名规则。
·<类型关键字>:可以是表3-1中所列出的类型关键字。
·[As <类型关键字>]和[<类型符>]:为可选项。若省略,则默认所声明的变量为Variant类型。
·[,…]:可以声明多个变量,声明方法相同。
例如:

上面几条Dim语句等价于:
Dim X As Long,St As String,Flag As Boolean,Y%,Z_1#,XY
变量声明后,其能够接收的数据类型就确定了,在代码中给变量赋值或运算时,变量只接收与所定义的变量类型相容的数据。
例如:
Dim X As Long
X = 45
定义X是长整型的变量,给X赋值45是正确的。但下面赋值是错误的。定义X是长整型的变量,给X赋值"李艳",是字符型的数据,与定义的变量X类型不相容。
Dim X As Long
X = "李艳"
(2)隐式声明
在Visual Basic中,如果没有强制要求变量声明,那么变量可以不加声明而直接使用,称为隐式声明。隐式声明的变量都是Variant类型,可以接收任何类型的数据。
例如:

3.变量的默认值
在Visual Basic中,变量被声明后,变量类型不同,拥有不同的默认值。在变量被赋值之前,变量的值就是其默认值。所有数值类型的变量,默认值都是0;字符型变量默认值为空字符串("");而逻辑型变量的默认值为False。
3.2.2 常量
常量是在应用程序运行过程中,其值不变的量。例如,在关系式Y=3*X+6中,3和6是常量。Visual Basic中有3种形式的常量,直接常量、用户定义的符号常量和系统内部定义的符号常量。
1.直接常量
根据数据的表现形式,将直接常量划分为数值常量、字符常量、日期常量和逻辑常量。
(1)数值常量
数值常量又可以细分为整型、长整型、单精度型、双精度型、字节型和货币型6种。其中,整型、长整型和字节型常量除了使用十进制数表示之外,还可以使用八进制和十六进制表示。八进制常数在数值前加&O或&,十六进制常数在数值前加&H。例如,67、3.14、343.454453#、1.2D+10为十进制表示的数值型常量,&O45、&67.55为八进制表示的数值型常量,&H0FF1、&HA1BF为十六进制表示的数值型常量。
(2)字符常量
字符常量是用西文双引号("")括起来的任意字符序列。例如,"欢迎使用Visual Basic"、"A4"为字符常量。
(3)日期常量
日期常量是用号码符(##)括起来的任何字面上可以表达日期和时间的字符。例如,#05/1/2014#为日期型常量。
(4)逻辑常量
逻辑常量只有True和False两种取值。
2.用户自定义的符号常量
符号常量是用户根据需要定义的常量,符号常量一经定义,在代码中就可以用符号常量名代替所定义的常量。
用Const语句定义符号常量,其格式为:
Const <符号常量名1> [As <类型关键字>] = <表达式1>[,<符号常量名2> _
[As <类型关键字>] = <表达式2>,…]
其中:
·<符号常量名>:符号常量的名称,其命名规则与变量名命名规则相同。
·As <类型关键字>:为可选项,说明常量所属数据类型。若省略,系统根据表达式值的类型自动确定符号常量的数据类型。
·<表达式>:可以是数值常量、字符常量等以及带运算符的表达式,但不能含有变量或函数。
例如:

也可以在一条Const语句中同时声明多个符号常量。
例如:
Const CMAX = 100, CMIN = 0
注意:符号常量一旦定义,在其后的代码中只能引用符号常量,不能修改符号常量的值。
3.系统内部符号常量
除了用户根据需要定义的符号常量外,Visual Basic系统还提供了系统定义的符号常量。这些符号常量可以与应用程序中的对象、方法和属性一起使用。选择“视图”菜单中的“对象浏览器”命令,打开“对象浏览器”窗口,可以查看到系统所提供的所有内部符号常量,在代码窗口中可以直接使用。
例如:
Text1.Alignment = vbCenter
Text1.Alignment = 2
系统符号常量vbCenter相当于文本框对齐属性值2,都是设置文本框的对齐方式为居中对齐。
例如:
·"请输入第一个加数" + vbCrLf+ "按回车键确认"
'vbCrLf为系统符号常量,表示回车换行。