1、第三章 VB的程序设计基础2.1 VB编码规则1. 语言元素 VB的语言基础是BASIC语言,VB程序的语言元素主要由:关键字(如: Dim、Print、Cls)函数(如:Sin()、Cos()Sqr()表达式(如:Abs(-23.5)+45*20/3 )语句(如:X=X+5 、 IFELSEEND IF)等组成。2. VB代码书写规则(1) 程序中不区分字母的大小写,Ab 与AB等效;(2) 系统对用户程序代码进行自动转换:1) 对于VB中的关键字,首字母被转换成大写,其余转换成小写 2) 若关键字由多个英文单词组成,则将每个单词的首字母转换成大写 3) 对于用户定义的变量、过程名,以第一次
2、定义的为准,以后输入的自动转换成首次定义的形式3. 语句书写规则(1)在同一行上可以书写多行语句,语句间用冒号(:)分隔(2)单行语句可以分多行书写,在本行后加续行符:空格和下划线 _(3) 一行允许多达255个字符4. 程序的注释方式(1)整行注释一般以 Rem开头,也可以用撇号 ;(2)用撇号 引导的注释,既可以是整行的,也可以直接放在语句的后面,最方便;(3)可以利用“编辑”工具栏的“设置注释块”、“解除注释块”来将设置多行注释。5. 保留行号和标号VB源程序接受行号与标号,但不是必须的(早期的BASIC语言中必须用行号)。标号是以字母开始以冒号结束的字符串,一般用在GOTO语句(现在很
3、少用)中。2.2 VB的语言基础1.数据类型VB的标准数据类型数据类型关键字类型符前缀存储空间范围数值数据类型字节型Byte Byt1 个字节0 到 255 整型Integer %Int2 个字节-32,768 到 32,767 长整型 Long&Lng4 个字节-2,147,483,648 到 2,147,483,647 单精度型Single!Sng4 个字节负数:-3.402823E38 到 -1.401298E-45;正数:1.401298E-45 到 3.402823E38 双精度型 Double#Dbl8 个字节负数: -1.79769313486232E308 - 4.940656
4、45841247E-324;正数:4.94065645841247E-324 1.79769313486232E308货币型CurrencyCur8 个字节从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 逻辑型Boolean Bln2 个字节True 或 False 日期型Date Dtm8 个字节100 年1月 1日 到 9999 年 12 月 31 日 对象型Object Obj4 个字节任何 Object 引用 变长字符型 String$Str10 字节加字符串长度0 到大约 20 亿 定长字符型String$Str字符串长度
5、1 到大约 65,400 变体数字型 Variant Vnt16 个字节任何数字值,最大可达 Double 的范围 变体字符型Variant Vnt22 个字节加字符串长度与变长 String 有相同的范围 注意:1)VB中对没有声明的变量其缺省的数据类型是变体型,可以用来存储各种数据,但所占用的内存比其它类型都多。为提高运行效率(整型效率较高),或达到一定的运算精确度(浮点型精度较高,但运行较慢),应合理的定义数据类型。2) 逻辑型数据只有True 和False两个值,转换成整型时,True=-1 ,False=0,将其它类型转换成逻辑型时,非0数转换为True ,0转换为False。3)
6、字符型可以包括所有的西文字符和汉字,字符必须用双引号括 起来, 如:abc1234)日期型数据按8字节的浮点数来存储,日期型数表示方式有两种:可以用号码符#括起来,也可以用数字序列表示(小数点左边的数字代表日期,右边代表时间,0为午夜,0。5为中午12点,负数表示是1899年12月31日前的日期和时间)。如:#3/22/2002# #2002-3-22 14:30:20# Dim T As Date T=-2.5 Print T 打印出来的结果是1899-12-28 12:00:00)任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。
7、数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。2. 变量与常量(1)变量或常量的命名规则1) 必须以字母或汉字开头,由字母、汉字、数字或下划线组成,长度255个字符;2) 不能使用VB中的关键字,并尽量不与VB中标准函数名同名;如:Dim 、Sin 3)VB中不区分变量的大小写,一般变量首字母用大写,其余用小写;常量全部用大写字母表示4)为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的
8、数据类型。(2)变量声明1)用Dim语句进行显式声明 语句形式: Dim 变量名 As 类型 如: Dim intX As integer 说明:如果没有As 类型,则默认为变体类型。可在变量名后加类型符来代替As 类型 如: Dim intX% 一条语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用;字符串变量根据其存放的长度是否固定,定义方法不同: 定长字符串: Dim strA As String*10 表示最多存放10个字符,如果赋值不足10个,则右补空;若多于10个,则多余部分截去。 不定长字符串:Dim strA As String 最多可存放2MB个字符2
9、) 隐式声明VB中允许变量不经过声明就直接使用,这种称为隐式声明,所有隐式声明的变量都是变体型的。隐式声明容易造成错误,为了调试程序方便,一般对使用的变量都进行声明,可以在通用声明段使用Option Explicit 语句来强制显式声明所有变量。(3)常量1)直接常量指在程序中直接给出值的数据,如:123、123&、123.45、1.234E2 、123D3分别表示整型、长整型、单精度浮点型(小数形式)、单精度浮点型(指数形式)、双精度浮点型。八进制常数: 在数值前加&O ,如 &O123十六进制常数:在数值前加&H ,如&H1232)用户声明的符号常量 用Const来声明: Const 符号
10、常量名 As 类型 = 表达式 如:Const PI=3.14159 声明了常量PI,代表3.14159,单精度型Const MAX As Integer=&O144 声明了常量MAX,代表八进制数144,整型Const COUNT#=45.67 声明了常量COUNT,代表45.67,双精度型3)系统提供的常量系统定义的常量位于对象库中,在对象浏览器中的Visual Basic(VB)和Visual Basic for Aplication(VBA)等对象库中列出了VB的常量。这些常量可以与应用程序的对象、方法、属性一起使用。如:Form1.WindowsState=vbMaximized 表
11、示将窗口极大化。3. 运算符(1) 算术运算符运算符含义优先级示例结果乘方1Ia29-负号2-iA-3*乘3IA* iA* iA27/除310/iA3.33333333333333整除410iA3Mod取模510 Mod iA1+加610+iA13-减7IA-10-7 说明:设表中的变量iA=3, 为整型。 算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。(2) 字符串运算符运算符作用区别示例结果&将两个字符串拼接起来连接符两旁的操作数不管是字符型还是数值型,系统先将操作数转换成字符,然后再连接。123&55abc+1212355abc12+连接符两旁的
12、操作数均为字符型;若均为数值型则进行算术加法运算;若一个为数字字符型,一个数值型,则自动将数字字符转换为数值,然后进行算术加;若一个为非数字字符型,一个数值型,则出错。123+55abc+12178出错(3) 关系运算符运算符含义示例结果=等于ABCDE=ABRFalse大于ABCDEABRFalse=大于等于bc=大小False小于233False=小于等于23=3True不等于abcABCTrueLike字符串匹配ABCDEFG Like *DE*TrueIs对象引用比较 注意:1) 如果两个操作数都是数值型,则按其大小比较2) 如果两个操作数都是字符型,则按字符的ASCII码值从左到右一
13、一比较3) 汉字字符大于西文字符4) 关系运算符的优先级相同5) VB6.0中Like运算符与通配符的使用:?表示任何单一字符*表示0个或多个字符#表示任何一个数字(0 - 9)字符列表表示字符列表中的任何单一字符!字符列表 表示不在字符列表中的任何单一字符(4) 逻辑运算符运算符含义优先级说明示例结果Not取反1当操作数为假时,结果为真Not FNot TTFAnd与2两个操作数均为真时,结果才为真T And TF And FT And FF And TTFFFOr或3两个操作数中有一个为真时,结果为真T Or TF Or FT Or FF Or TTFTTXor异或3两个操作数不相同,结果
14、才为真,否则为假T Xor FT Xor TTFEqv等价4两个操作数相同时,结果才为真T Eqv FT Eqv TFTImp蕴含5第一个操作数为真,第二个操作数为假时,结果才为假,其余都为真T Imp FT Imp TFT说明:1)若有多个条件时,And必须全部条件为真才为真;Or只要有一个条件为真就为真。2)如果逻辑运算符对数值进行运算,则以数字的二进制值逐位进行逻辑运算。And运算常用于屏蔽某些位;Or运算常用于把某些位置1。 如:12 And 7 表示对1100与0111进行And运算,得到二进制值100,结果为十进制4。3)对一个数连续进行两次Xor操作,可恢复原值。在动画设计中,用
15、Xor可恢复原来的背景。4.表达式(1)表达式的组成 表达式由常量、变量、运算符、函数和圆括号按一定的规则组成,通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。(2)表达式的书写规则1)乘号不能省略2)括号必须成对出现,均使用圆括号,可以嵌套,但必须配对。3)表达式从左到右在同一基准上书写,无高低、大小之分。 例:sqr(3*x+y)-z)/(x*y)4(3)不同数据类型的转换操作数的数据类型应该符合要求,不同的数据应该转换成同一类型。在算术运算中,如果操作数的数据精度不同,VB规定运算结果采用精度较高的数据类型。(4)优先级 同一表达式中,不同运算符的优先级是:算术运算符 字符运算符 关系运算符 逻辑运算符注意:对于存在多种运算符的表达式,可增加圆括号改变优先级或使表达式更清晰。2.3 VB的公共函数1. 数学函数VB中常用的数学函数函数名功能示例结果Sqr(x)本文来自网络,版权归原作者所有,请下载后,尽快删除。