资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第五章 VB语法基础,本章内容及要求:,1.,熟悉VB程序中代码和语句书写规则;,2.,掌握VB的数据类型;,3.掌握VB的,运算符和表达式的使用;,本章重点:,变量和常量的定义及使用,、,运算符和表达,式的使用。,本章难点:,数据类型。,5.1 VB语言字符集及编码规则,5.1.1 VB的字符集,l,字母:大写英文字母,A,Z,;小写英文字母,a,z,。,l,数字:,0,一,9,;,l,专用字符:共27个,P48表。,5.1.2 编码规则与约定,(一)编码规则,1,VB,代码中不区分字母的大小写。,2,同一行上可以书写多条语句,但语句间要用冒号“,:,”分隔。,3,若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,,1,个空格加下划线“,_,”。,4,一行最多允许,255,个字符。,5,注释以,Rem,开头,也可以使用单引号“,”,注释内容可直接出现在语句的后面。,6在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。,(二)约定,1为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写,2.注释有利于程序的维护和调试,Rem开始 或 单撇。,例如:This is a VB,REM This is a VB,在6.0中新增了“块注释/取消块注释”(视图/工具栏/编辑),3通常不使用行号,4对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。如命令按钮前缀:cmd,5.2,数据类型,5.2.1 标准数据类型,5.2.2 自定义类型,在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。,使用形式:,Type 自定义类型名,元素名(下标)As 类型名,元素名(下标)As 类型名,.,End Type,见下例,Type Student,Xh As Sting,Xm As String,Xb As String,Nl As Integer,Score As Single,End Type,例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如Student类型)。,5.3 常量和变量,5.3.1 常 量,在程序运行过程中,其值,不能被改变,的量称为常量。在VB中有三类常量:,普通常量,符号常量,系统常量,一、普通常量,1,整型常量,(1)整型(,Integer):,表示-32768至32767之间的整数,例如:10 110 20,(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中的颜色数据常常用十六进制整数表示。,2、实型常量,1)单精度实型(Single):有效数为7位,表示-3.37E+38至3.37E+38之间的实数,2)双精度实型(Double):有效数为15位,实型常量的表示:,1,)十进制小数形式。它是由正负号(,+,,,-,)、数字(,09,)和小数点(,.,)或类型符号(!、,#,)组成,即,n.n,,,n,!或,n#,,其中,n,是,09,的数字。,例如,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,10,3,。,3、,字符串常量,在,VB,中字符串常量是用双引号“,”括起的一串字符,例如,ABC,,,abcdefg,,,123,,,0,,,VB,程序设计,等。,说明:,(,1,)字符串中的字符可以是所有西文字符和汉字、标点符号等;,(,2,),表示空字符串,而,表示有一个空格的字符串;,(,3,)若字符串中有双引号,例如,ABDXYZ,,则用连续两个双引号表示,即:,ABDXYZ“,4、逻辑(Boolean)数据类型,只有两个值True,或False。将逻辑数据转换成整型时:,True为-1,,,False为0,;其它数据转换成逻辑数据时:,非0为True,0为False。,5、日期常量,日期(,Date,)型数据按,8,字节的浮点数来存储,表示日期范围从公元,100,年,1,月,1,日,9999,年,12,月,31,日,而时间范围从,0:00:0023:59:59,。,一种在字面上可被认作日期和时间的字符,只要用号码符,“,#,”,括起来,都可以作为日期型数值常量。,例:#09/02/99#、#January 4,1989#,#2002-5-4 14:30:00 PM#都是合法的日期型常量。,说明:,当以数值表示日期数据时,整数部分代表日期,而小数部分代表时间;例如1表示1899,年12月31日。大于1的整数表示该日期以后的日期,0和小于0的整数表示该日期以前的日期。,二、符号常量,在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。,VB,中使用关键字,Const,声明符号常量。其格式如下:,Const,常量名,As,类型,|,类型符号,=,常数表达式,例如:,Const PI#=3.1415926535,等价于:,Const PI As Double=3.1415926535,三、系统常量,VB系统提供了应用程序和控件的系统定义常数。它们存放于系统的对象库中,在“对象浏览器”中的 Visual Basic(VB)和 Visual Basic for applications(VBA)对象库中列举了 Visual Basic 的常数,例如,要将文本框Text1的前景颜色设置为红色,可以使用下面的语句:,Text1.ForeColor=vbRed,这里的vbRed就是系统常量。这比直接使用16进制数来设置要直观得多。,又如,窗口状态属性,WindowsState,可取,0,1,2,三个值,对应三种不同状态。,在程序中使用语句 Myform.WindowsState=vbMaxmized,将窗口极大化,显然要比使用语句Myform.WindowsState=2 易于阅读和理解。,一.变量和常量的命名规则,1.,以字母或汉字开头,,后可跟字母、数字或下划线组成,长度小于等于40个字符;,2.不能使用VB中的关键字;,3.VB中,不区分,变量名的大小写.,4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。,例如:strAbc,(,字符串变量)iCount,(整型变量),dblx,(双精度变量)sYz (单精度变量),5.3.2 变 量,二.变量声明,1.用Dim语句显式声明变量,形式:Dim 变量名 AS 类型,Dim 变量名类型符,例 Dim iCount As integer,sum As single,等价于 Dim iCount%,sum!,2.隐式声明,Visual Basic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。Visual Basic根据程序中赋予变量的值来自动调整变量的类型。,例如:,下面是一个很简单的程序,其使用的变量,a,b,Sum,都没有事先定义。,Private Sub Form_Click(),Sum=0,a=10:b=20,Sum=a+b,Print Sum=;Sum,End Sub,3,强制显式声明,Option Explicit,语句,良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使程序易于调试。,Visual Basic,中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:,Option Explicit,5.4 变量的作用域,概述:,在,VB,中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为:,局部变量(过程级变量),窗体,/,模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用),全局级变量(公有的模块级变量)。,5.4.1 过程级变量局部变量,局部变量:,在过程内用声明的变量,只能在本过程中使用。,在过程内部使用 Dim 或者 Static 关键字来声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互不影响。,例:,Private Sub Form_Load(),Dim n%,n=10,End Sub,Private Sub From_Click(),Dim n%,Print“n=“;n,End Sub,程序运行后单击窗体,其输出结果是什么?,5.4.2 窗体/模块级变量,窗体,/,模块级变量:,在,“,通用声明,”,段中用,Dim,语句或用,Private,语句声明的变量,可被本窗体,/,模块的任何过程访问。但其他模块却不能访问该变量。,例如:在,“,通用声明,”,段声明如下变量,Private s As String,Dim a As Integer,b As Single,5.4.3 全局变量,全局变量,也称公有的模块级变量,在窗体模块或标准模块的顶部的“通用”声明段用,Public,关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。,例如:,Public a As Integer,,,b As single,3种变量声明及使用规则如下表:,一、公用变量与局部变量同名,在不同过程中定义同名变量,它们互不影响,但若在一过程中定义使用了与全局变量同名的变量,则就应注意。,5.4.4 关于多个变量同名,注意:在过程中,如果定义了与模块级变量(在通用部分使用Private或Dim声明的变量),则在该过程内不能引用同名的模块级变量。例如,上面的例子中,如果将定义全局变量的语句Public Temp As Integer改为Private Temp As Integer 则在Command1的单击事件中就不使用模块级的Temp变量。,Public Temp As Integer ,定义全局变量,Private Sub Form_Load(),Temp=1 ,将全局变量,Temp,的值设置成,1,End Sub,Private Sub Command1_Click(),Dim Temp As Integer ,定义局部变量,Temp=2 ,将局部变量,Temp,的值设置成,2,Print temp=;Temp,Print temp=;Form1.Temp,End Sub,Private Sub Command2_Click(),Print temp=;Temp,End Sub,二、全局变量同名,如果不同模块中的全局变量使用同一名字,则通过同时引用模块名和变量名就可以在代码中区分它们。,例如,如果有一个在 Form1 和 Module1 中都声明了公用的 Integer 变量 intX,则把它们作为 Module1.intX 和Form1.intX 来引用便得到正确值。也就是说,如果不同模块中的全局变量使用同一名字,引用时就需要使用“模块
展开阅读全文