VB学习资料第三章 VB语言基础.docx
- 文档编号:24886184
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:29
- 大小:35.91KB
VB学习资料第三章 VB语言基础.docx
《VB学习资料第三章 VB语言基础.docx》由会员分享,可在线阅读,更多相关《VB学习资料第三章 VB语言基础.docx(29页珍藏版)》请在冰豆网上搜索。
VB学习资料第三章VB语言基础
§3.1VisualBasic语言字符集及编码规则
一、VisualBasic的字符集
VisualBasic的字符集就是指用VisualBasic语言编写程序设计时所能用的所有符号的集合。
字符是构成程序设计语言的最小语法单位,每一种程序语言都有一个自己的字符集。
VisualBasic使用Unicode字符集。
◆基本字符包括:
字母:
大写英文字母A—Z;小写英文字母a—z。
数字:
0一9;
◆专用字符:
空格!
”#$%&‘()*+-/\^,.:
;<>=?
@[]_{}|~等。
二、编码规则与约定
(一)编码规则
1、VisualBasic代码中不区分字母的大小写。
2、在同一行上可以书写多条语句,但语句间要用冒号“:
”分隔。
3、若一个语句行不能写下全部语句,或在特别需要时,可以换行。
换行时需在本行后加入续行符,即1个空格加下划线“_”。
4、一行最多允许255个字符。
5、注释以Rem开头,也可以使用单引号“'”,注释内容可放在过程、模块的开头作为标题用,也可直接出现在语句的后面,但不能放在续行符的后面。
6、在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。
(二)约定
1、为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写。
2、注释是非执行语句,它不被解释和编译,仅对程序的有关内容起注释作用。
例如:
ThisisaVB
REMThisisaVB
3、通常不使用行号
4、对象名命名约定:
每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。
3.2.1VisualBasic6.0的标准数据类型
VisualBasic6.0提供的基本数据类型主要有字符串型数据和数值型数据,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。
一、字符串(String)
字符串是一个字符序列,由ASCII字符组成,包括标准的ASCII字符和扩展ASCII字符。
在VisualBasic中,字符串是放在双引号内的若干个字符,其中长度为0(即不含任何字符)的字符串称为空字符串。
字符串数据类型的类型声明字符是美元符号($)。
字符串通常放在双引号中,例如:
"Hello"
"可视化程序设计"
""(空字符串)
VisualBasic中的字符串分为两种,即变长字符串和定长字符串。
其中变长字符串的长度是不确定的,可以是0~231个范围内的字符。
而定长字符串含有确定个数的字符,最大长度不超过216个字符。
二、数值
VisualBasic的数值型数据分为整数和浮点数两类。
其中整数又分为整型和长整型,浮点数分为单精度浮点数和双精度浮点数。
(一)整数
整数是不带小数点和指数符号的数,在机器内部以二进制补码形式表示。
例如,整数4,-4分别以下面的形式存放:
40000000000000100
-41111111111111100
1、整数(Integer)(2字节):
整型以两个字节(16位)的二进制码表示和参加运算,其取值范围为-32768~32767。
整数的类型声明字符是百分比符号(%)。
2、长整型(Long)(4字节):
长整型以带符号的4字节(32位)二进制数存储,其取值范围为-2147483648~2147483647。
长整型的类型声明字符为和号(&)。
(二)浮点数
浮点数也称实数型和实数,是带有小数部分的数值。
它由三部分组成:
符号、指数及尾数。
单精度浮点数和双精度浮点数的指数分别用“E”(或“e”)和“D”(或“d”)来表示。
例如:
123.45E3或123.45e+3单精度数,相当于123.45乘以10的3次幂
123.45678D3或123.45678d+3双精度数,相当于123.45678乘以10的3次幂
1、单精度浮点型(Single):
以4个字节(32位)存储,其中符号占1位,指数占8位,其余23位数表示尾数,此外还有一个附加的隐含位。
单精度浮点数可以精确到7位十进制数,其负数的取值范围为-3.402823E38~-1.401298E-45,正数的取值范围为1.401298E-45~3.402823E38。
单精度浮点型的类型声明字符为感叹号(!
)。
2、双精度浮点型(Double):
以8个字节(64位)存储,其中符号占1位,指数占11位,其余52位数表示尾数,此外还有一个附加的隐含位。
双精度浮点数可以精确到15或16位十进制数,其负数的取值范围为从-1.79769313486232E308~-4.94065645841247E-324;正数的取值范围为4.94065645841247E-324~1.79769313486232E308。
双精度型的类型声明字符是数字符号(#)。
三、货币(Currency)
货币数据类型是为表示钱款而设置的。
该数据类型存储为64位(8个字节)整型的数值形式,然后除以10,000给出一个定点数,其小数点左边有15位数字,右边有4位数字。
这种表示法的范围可以从-922,337,203,685,477.5808到922,337,203,685,477.5807。
货币数据类型的类型声明字符为at号(@)。
货币类型数据的小数点是固定的,因此称为定点数据类型。
3.2.1VisualBasic6.0的标准数据类型
四、变体(Variant)
变体数据类型是所有没被显式声明(用如Dim、Private、Public或Static等语句)为其他类型变量的数据类型。
变体数据类型并没有类型声明字符。
变体数据类型是一种特殊的数据类型,除了定长字符数据及用户定义类型外,可以包含任何种类的数据。
变体数据类型也可以包含Empty、Error、Nothing及Null等特殊值。
可以用VarType函数或TypeName函数来决定如何处理变体数据类型中的数据。
变体数据类型数值数据可以是任何整型或实型数。
负数时范围从-1.797693134862315E308到-4.94066E-324;
正数时则从4.94066E-324到1.797693134862315E308。
通常,数值变体数据保持为其变体中原来的数据类型。
例如,如果把一个整数赋值给变体数据,则接下来的运算会把此变体数据当成整数来处理。
然而,如果算术运数针对含字节、整数、长整数或单精度数之一的变体数据执行,并当结果超过原来数据类型的正常范围时,则在变体中的结果会提升到较大的数据类型。
如字节则提升到整数,整数则提升到长整数,而长整数和单精度数则提升为双精度数。
当变体变量中有货币、Decimal及双精度数值超过它们各自的范围时,会发生错误。
可以用变体数据类型来替换任何数据类型,这样会更有适应性。
如果变体变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定。
五、其他数据类型
除以上介绍的数据类型外,在VisualBasic6.0中还可以使用其他一些数据类型,其中包括:
(一)字节(Byte)
字节实际上是一种数值类型,以1个字节的无符号二进制数存储。
其取值范围为0~255。
(二)布尔(Boolean)
布尔型数据是一个逻辑值,用两个字节存储。
它只取两种值,即True(真)或False(假)。
(三)日期(Date)
日期型存储为64位(8个字节)浮点数值形式,其可以表示的日期范围从公元100年1月1日到9999年12月31日,而时间可以从0:
00:
00到23:
59:
59。
任何可辨认的文本日期都可以赋值给日期变量。
日期文字必须以数字符号(#)括起来。
例如,#January6,2004#。
(四)对象(Object)
对象型数据用来表示图形或OLE对象或其他对象,用4个字节存储。
(五)Decimal
Decimal变量存储为96位(12个字节)无符号的整型形式,并除以一个10的幂数,称为变比因子。
这个变比因子决定了小数点右面的数字位数,其范围从0到28。
变比因子为0(没有小数位)的情形下,最大的可能值为+/-79,228,162,514,264,337,593,543,950,335。
而在有28个小数位的情况下,最大值为+/-7.9228162514264337593543950335;而最小的非零值为+/-0.0000000000000000000000000001。
注意:
此时,Decimal数据类型只能在变体数据类型中使用,也就是说,不能声明一变量为Decimal的类型。
3.2.2用户自定义类型
用户可以利用Type语句定义自己的数据类型。
其格式如下:
Type数据类型名
数据类型元素名As类型名
……
EndType
其中“数据类型名”是要定义的数据类型的名字,其命名规则与变量的命名规则相同;“数据类型元素名”也遵守同样的规则,且不能是数组名;“类型名”是必需的,可以是任何基本数据类型,也可以是用户定义的类型。
用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组成。
例如:
TypeSystemInfo
CPUAsVariant
MemoryAsLong
ainboardAsString*10'固定大小的数组。
VideoColorsAsInteger
CostAsCurrency
PurchaseDateAsVariant
EndType
注意:
1、在Type...EndType块中不允许使用行号和行标签。
2、“类型名”可以是字符串,但必修是定长字符串,其长度用类型名称加上一个星号(*)和常数指明,一般格式为:
String*常数
这里的“常数”是指字符个数,它指定长字符串的长度。
例如:
NameasString*4
3.3.1常量
在程序运行过程中,其值不能被改变的量称为常量(constant)。
在VB中有三类常量:
◆普通常量
◆符号常量
◆系统常量
一、普通常量
(一)整型常量
1、整型(Integer):
表示-32768至32767之间的整数。
例如:
1011020
2、长整型(Long):
表示-2,147,483,648至2,147,483,647之间的整数。
例如:
长整型常数的书写:
23&。
通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:
(1)十进制整数。
如125,0,-89,20。
(2)八进制整数。
以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8,等于十进制数21。
(3)十六进制。
以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。
VB中的颜色数据常常用十六进制整数表示。
(二)实数
1、单精度实型(Single):
有效数为7位,表示-3.37E+38至3.37E+38之间的实数。
2、双精度实型(Double):
有效数为15位。
实数常量的表示形式:
(1)十进制小数形式。
它是由正负号(+,-)、数字(0~9)和小数点(.)或类型符号(!
、#)组成,即±n.n,±n!
或±n#,其中n是0~9的数字。
例如0.123、.123、123.0、123!
、123#等都是十进制小数形式。
(2)指数形式。
±nE±m或±n.nE±m,±nD±m或±n.nD±m
例:
1.25E+3和1.25D+3相当于1250.0或者1.25×103。
(三)字符串常量
在VB中字符串常量是用双引号“"”括起的一串字符。
例如"ABC","abcdefg","123","0","VB程序设计"等。
说明:
◆字符串中的字符可以是所有西文字符和汉字、标点符号等;
◆""表示空字符串,而""表示有一个空格的字符串;
◆若字符串中有双引号,例如ABD"XYZ,则用连续两个双引号表示,即:
"ABD""XYZ"。
(四)逻辑(Boolean)数据类型
只有两个值True或False。
将逻辑数据转换成整型时:
True为-1,False为0;其它数据转换成逻辑数据时:
非0为True,0为False。
(五)日期常量
日期(Date)型数据按8字节的浮点数来存储,表示日期范围从公元100年1月1日~9999年12月31日,而时间范围从0:
00:
00~23:
59:
59。
一种在字面上可被认作日期和时间的字符,只要用号码符“#”括起来,都可以作为日期型数值常量。
如:
#09/02/99#、#January4,1989#,#2002-5-414:
30:
00PM#都是合法的日期型常量。
说明:
◆当以数值表示日期数据时,整数部分代表日期,而小数部分代表时间;例如1表示1899年12月31日。
大于1的整数表示该日期以后的日期,0和小于0的整数表示该日期以前的日期。
二、符号常量
在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。
VB中使用关键字Const声明符号常量。
其格式如下:
Const常量名[As类型|类型符号]=常数表达式
例如:
ConstPI#=3.1415926535等价于:
ConstPIAsDouble=3.1415926535
三、系统常量
VB系统提供了应用程序和控件的系统定义常数。
它们存放于系统的对象库中,在“对象浏览器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)对象库中列举了VisualBasic的常数。
例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:
Text1.ForeColor=vbRed
这里的vbRed就是系统常量。
这比直接使用16进制数来设置要直观得多。
又如,窗口状态属性WindowsState可取0,1,2三个值,对应三种不同状态(参见教材第二章表2-2所示)。
在程序中使用语句Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2易于阅读和理解。
3.3.2变量
在程序运行过程中,其值可以改变的量称为变量(Variable)。
一个变量有三个要素:
◆变量名:
通过变量名来指明变量,即内存中的位置。
◆变量类型:
变量的数据类型,决定了变量的数据结构和存储方式,也决定了它能参与的运算。
◆变量的值:
指内存中的变量所存储的值,随着程序的执行可以发生改变。
在程序中,一般通过赋值语句来改变变量的值。
一、变量的命名规则
◆以字母或汉字开头,后可跟字母、数字或下划线组成;
◆不能使用VB中的关键字;
◆VB中不区分变量名的大小写;
◆为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。
例如:
strAbc,(字符串变量)iCount,(整型变量)
dblx,(双精度变量)sYz(单精度变量)
二、变量声明
声明变量就是声明变量名和变量类型,以决定系统为它分配存储单元。
VisualBasic中声明变量分为显示声明和隐式声明两种:
(一)显式声明
格式:
Dim|Private|Static|Public<变量名>[AS<类型>]
Dim|Private|Static|Public<变量名>[类型符]
例如:
DimiCountAsinteger,sumAssingle
等价于:
DimiCount%,sum!
说明:
◆Dim:
在窗体模块、标准模块或过程中声明变量。
◆Private:
在窗体模块或过程中声明变量,使变量仅在该模块或过程中有效。
◆Static:
在过程中定义静态变量,即该过程结束,也仍然保留变量的值。
◆Public:
在标准模块中声明全局变量,使变量在整个应用程序中有效。
◆<变量名>:
遵循变量的命名规则。
◆<类型>:
可以是VisualBasic提供的各种数据类型或用户自定义类型。
◆[AS<类型>]:
方括号部分表示该部分可以缺省,缺省“[AS<类型>]”部分,则所创建的变量默认为可变类型。
[类型符]:
即类型声明字符,是附加到变量名上的字符,指出变量的数据类型。
(二)隐式声明
VisualBasic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。
所有隐式声明的变量都是Variant数据类型。
VisualBasic根据程序中赋予变量的值来自动调整变量的类型。
例如:
下面是一个很简单的程序,其使用的变量a,b,Sum都没有事先定义。
PrivateSubForm_Click()
Sum=0
a=10:
b=20
Sum=a+b
Print"Sum=";Sum
EndSub
(三)强制显式声明——OptionExplicit语句
良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。
VisualBasic中可以强制显式声明,以保证所有的变量都能得到声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:
OptionExplicit。
3.4.1算术运算符与算术表达式
一、算术运算符
算术运算符是常用的运算符,用来执行各种简单的算术运算。
算术运算符要求参与运算量是数值型,运算的结果也是数值型。
除“-”取负号运算是单目运算符(要求一个运算量),其余都是双目运算符(要求两个运算量)。
各算术运算符的运算规则及优先级如下表3-1所示:
表3-1运算规则及优先级
运算符
优先级例
例
结果
^
1
ia^2
9
—
2
—ia
-3
*
3
ia*ia*ia
27
/
3
10/ia
3.3333333333
\
4
10\ia
3
Mod
5
10Modia
1
+
6
10+ia
13
-
6
Ia-10
-7
说明:
◆在算术运算中,如果操作数具有不同的数据精度,则VisualBasic规定运算结果的数据类型以精度高的数据类型为准,但也有以下几种特殊情况:
(1)当Long型数据与Single型数据运算时,结果为Double型数据。
(2)除法和乘方运算的结果都是Double型数据。
(3)整除(\)运算时,若运算量为实数,则先取整,后相除,结果为整数或长整数。
◆在求余(Mod)运算时,如果运算量不是整数,则先将运算量四舍五入为整数,然后再做求余运算,求余结果的正负号始终与第一个运算量的符号相同。
二、算术表达式
由算术运算符、括弧、内部函数及数据组成的式子称为算术表达式。
VisualBasic表达式的书写原则为:
1、表达式中的所有运算符和操作数必须并排书写。
不能出现上下标(如X2、X2等)和数学中的分数线(如
、
等)。
2、数学表达式中省略乘号的地方,在VisualBasic表达式中不能省(如2ab、xy等)。
3、要注意各种运算符的优先级别,为保持运算顺序,在写VisualBasic表达式时需要适当添加括号(),若要用到库函数,必须按库函数要求书写。
例如:
(b-sqr(b*b-4*a*c))/(2*a)
(a+b)/(a-b)
(2*3.14159*r+exp(-5))*log(x)
3.4.2字符串运算符与字符串表达式
字符串运算符有:
“&”、“+”,它们的功能是字符串连接。
由字符串运算符与运算变量构成的表达式称为字符串表达式。
例如:
"ABCD"+"EFGHI" '结果为:
ABCDEFGHI
"VB"&"程序设计教程" '结果为:
VB程序设计教程
说明:
◆当连接符两旁的操作量都为字符串时,上述两个连接符等价。
它们区别是:
+(连接运算):
两个操作数均应为字符串类型;
&(连接运算):
两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。
【例】
"100"+123'结果为223
"100"+"123"'结果为100123
"Abc"+123'出错
"100"&123'结果为100123
100&123'结果为100123
"Abc"&"123"'结果为Abc123
"Abc"&123'结果为Abc123
注意:
使用运算符“&”时,变量与运算符“&”之间应加一个空格。
这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。
3.4.3关系运算符与关系表达式
关系运算符都是双目运算,是用来比较两个运算量之间的关系,用关系运算符连接两个算术表达式所组成的式子叫做关系表达式,关系表达式的运算结果为逻辑量。
若关系成立,结果为True,若关系不成立,结果为False。
VisualBasic把任何非0值都认为是“真”,但一般以-1表示“真”,以0表示“假”。
VB中的关系运算符如下表3-2所示:
表3-2
运算符
含义
优先级
实例
结果
<
小于
所有关系运算优先级相同。
低于算术运算的加“+”,减“-”运算,高于逻辑非“Not”运算。
15+10<20
False
<=
小于或等于
10<=20
True
>
大于
10>20
False
>=
大于或等于
"This">="That"
True
=
等于
"This"="That"
False
<>
不等于
"This"<>"That"
True
Like
字符串匹配
"This"Like"*is"
True
Is
对象比较
关系运算的规则如下:
◆当两个操作式均为数值型,按数值大小比较。
◆当两个操作数都为字符型时,按字符的ASCII码值从左到右一一比较,即首先比较两个字符串的第一个字符,其ASCII码值大的字符串大,如果第一个字符相同,则比较第二个字符,依次类推,直到出现不同的字符为止。
例如:
“These”>“That”等价于“e”>“a”的比较。
结果是:
True。
◆数值型与可转换为数值型的数据比较,如:
29>“189”,按数值比较,结果为False
◆数值型与不能转换成数值型的字符型比较,如:
77>“sdcd”,不能比较,系统出错。
◆“Like”运算符是VisualBasic6.0中新增加的。
其使用格式为:
str1Likestr2
其中:
str1、str2可以是任何字符串常量、变量和表达式,如果str1与str2匹配,则结果为True;如果不匹配,则结果为False。
str2可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。
下表3-3所示为str2中允许的匹配字符及其含义。
表3-3匹配字符及其含义
匹配字符
含义
举例
结果
?
任何单一字符
“ABCD”Like“?
BCD”
True
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB学习资料第三章 VB语言基础 VB 学习 资料 第三 语言 基础