第三章Visual Basic语言基础.docx

上传人:b****5 文档编号:28931616 上传时间:2023-07-20 格式:DOCX 页数:53 大小:721.01KB
下载 相关 举报
第三章Visual Basic语言基础.docx_第1页
第1页 / 共53页
第三章Visual Basic语言基础.docx_第2页
第2页 / 共53页
第三章Visual Basic语言基础.docx_第3页
第3页 / 共53页
第三章Visual Basic语言基础.docx_第4页
第4页 / 共53页
第三章Visual Basic语言基础.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

第三章Visual Basic语言基础.docx

《第三章Visual Basic语言基础.docx》由会员分享,可在线阅读,更多相关《第三章Visual Basic语言基础.docx(53页珍藏版)》请在冰豆网上搜索。

第三章Visual Basic语言基础.docx

第三章VisualBasic语言基础

第三章VisualBasic语言基础

注释

注释是指在编写代码时,编写者在代码中添加的一些说明性语句。

注释是非执行语句,只是对有关的内容加以说明。

例如,说明某个过程的功能,定义某个变量的目的等。

   在程序中添加注释是个良好的编程习惯。

每个程序员都有这样的体会:

自己编写的一些代码,过一段时间后再去阅读,会感到很费劲甚至难以读懂门阅读别人编写的代码更是一可想而知。

因此,在编写程序代码时,最好为代码添加注释,以便于自己或别人能较轻松地读懂代码。

   在VB中,注释以Rem关键字开头,并且Rem关键字与注释内容之间要加一个空格。

注释可以是单独的一行,也可以写在其他语句行的后面。

如果在其他语句行后使用Rem关键字,则必须使用冒号(:

)与语句隔开。

   也可以使用一个撇号(')来代替Rem关键字。

若使用撇号,则在其他语句行使用时不必加冒号。

如图3.1所示的是注释的写法。

在【代码】窗口中,注释添加完成后,自动以绿色显示。

   在VB的【编辑】工具栏中还提供了专门用于设置注释块的按钮,使得将多行语句设置为注释或取消注释十分方便。

在默认情况下,【编辑】工具栏不出现在界面中,在【视图】菜单的【工具栏】子菜单中选择【编辑】选项即可打开【编辑】工具栏。

   设置注释块的操作是:

在【代码】窗口中选中要设置为注释的单行或多行语句,单击【编辑】工具栏中的【设置注释块】按钮,即可为所选的每行语句前添加一个撒号('),将创门设置为注释。

单击【解除注释块】按钮,则情况相反。

分行与续行

有时候,一条语句可能会很长,如果将它写在一行上,将给阅读或打印代码带来不便。

在VB中,可以使用分行符(_)(一个空格和一条下划线)将一条语句写在两行或多行上。

   例如:

   Forml.Caption="分行".

   语句可以分为两行写成:

   Form1.Caption=_"分行".

   在同一行内,分行符后面不能添加注释,例如下面的语句是错误的:

   Fonm1.Caption=_'设置窗体标题。

   "分行".

   分行符一般添加在运算符的前后。

不能使用分行符将一个变量名或属性名分隔成两行,例如下面的语句是错误的:

   Forml.Capt_.

   ion="分行".

   在通常情况下,一条语句占用一行,并且在语句末尾没有表示语句结束的符号。

但也可以将多行语句写在同一行上,相邻的两条语句中间使用冒一号(:

)作为续行符。

   例如:

   Form1.Caption="断行":

Form1.FontSize=14:

Print"你好".

   在打印程序时,将多行语句写在同一行上可以节省纸张。

但为了便于程序的阅读,最好在一行上只写一条语句。

变量的命名规则

不同的变量是通过变量名标识的。

在命名变量时,有很大的灵活性,例如,可以将用来保存产品价格的变量命名为X,也可以将其命名为Price或其他名称。

   在较大型的程序中,最好用带有一定描述性的名称来命名对象,如将表示价格的变量命名为Price,将表示年龄的变量命名为Age等,这样会使得程序易于阅读与维护。

   在VB中,变量的命名还需要遵循以下几条规则:

   变量名必须以字母或汉字开头。

例如,abc.姓名、年n3和ff28等变量名都是合法的,而3abc.#xy和+uu等变量名是非法的。

   不能在变量名中出现句号、空格或者嵌入!

、@、#、$、%、&等字符。

例如,#,d%等变量名是合法的,而r%R,a#bc和abe等变量名是非法的。

   不能使用VB的关键字作为变量的名字。

关键字是VB内部使用的词,是该语言的组成部分。

例如,print,dim和For等都是非法变量名。

   变量名不得超过255个字符。

   变量名在变量的有效范围内必须是唯一的。

   变量名不区分大小写。

例如,变量ABC,Abc和aBc表示同一变量。

变量的数据类型

除名称外,变量还有数据类型。

变量的数据类型决定了如何将变量的值存储到计算机的内存中。

所有的变量都具有数据类型,以决定它能够存储哪种类型的数据。

例如,某个变量的数据类型为整型(存放整数),但是如果在代码中将一个字符串赋给它,则运行程序时会出现类型不匹配的错误,并弹出消息框,提示用户类型不匹配。

在声明变量时可指定它的数据类型。

   表3.2中列出了VB所支持的基本数据类型。

   1.数值型数据类型

   VB支持6种数值型数据类型,分别是Byte(字节型)、Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)和Currency(货币型).

   如果知道变量总是存放整数(如12)而不是带小数点的数字(如3.57),就应当将它声明为Integer类型或Long类型。

整数的运算速度较快,而且比其他数据类型占据的内存要少。

在Far```Next循环内作为计数器变量使用时,整数类型尤为高效。

   如果变量包含小数,则可将它们声明为Single,Double或Currency变量。

   浮点数值可表示为mmmEeee或mmmDeee形式。

其中mmm是假数,而eee是指数(以10为底的幂).Single数据类型的最大正数值为3.402823E+38,即3.4乘以10的38次方;Double数据类型的最大正数值是1.797b9313486232D+308即1.8乘以10的308次方。

用D将数值文字中的假数部分和指数部分隔开,就会导致将该值作为Double数据类型来处理。

同样,用这种方式使用E,也会导致将该值作为Sings.数据类型来处理。

   Currency数据类型的定点实数保留小数点右面4位和小数点左面15位,适用于货币计算。

浮点(Single和Double)数比Currency的有效范围人得多,但有可能产生小的进位误差。

   Byte数据类型主要用于存储二进制数。

   所有数值变量都可相互赋值。

在将浮点数赋予整数之前,VB会将浮点数的小数部分四舍五入,而不是将小数部分去掉。

2.字符串型数据类型

   如果变量总是包含字符串而从不包含数值,就可将其声明为字符串型。

字符串是用双引一号括起来的若干个字符。

字符串中的字符可以是计算机系统允许使用的任意字符。

例如:

"VisualBasic6.0"、"***计算机%%%"和"xxx@"

   等都是合法的字符串。

字符串的长度是指字符串中字符的个数,不含任柯字符的字符串为空字符串。

字符串在内存中是按字符连续存储的,每个字符占用一个字节。

例如字符串"1234"占用4个字节的内存。

而1234是一个整型数据,它占用两个字节。

   如果字符串表示数值,则可将字符串赋予数值变量。

也可将数值赋予字符串变量。

   3.日期型数据类型

   日期型变量用来存储日期或时间。

可以表示的口期范围为从公元l00年1月1日到公元9999年12月31口,时间则是从0:

00:

00到23:

59:

59.日期常数必须用"#"号括起来。

例如,如果变量Mydate是一个日期型变量,可以使用下面几种方式为该变量赋值:

   Mydate=#3/19/1977

   Mydate=1977-04-19#

   Mydate=#77.3,19#

   Mydate=#April19,1944#

   Mydate=#19Apr77#

   上面几个语句的作用完全相同,都是将日期常数1977年4月19赋给日期变量Mydate.并且,在【代码】窗口中输入上述任一语句,VB都将自动将其转换为第一条语句的格式,即Mydate=#4/19/1977#.

   如果将一个数值型数据赋给日期变量,则小数点左边的数字代表日期,右边的数字代表时间;O为午夜,0.5为中午12点;负数代表的是1899年12月31日之前的日期或时间。

例如,从现在起过6小时的日期和时间可以表示为;

   now+0.25

4.布尔型数据类型

   若变量的值只是"true/false"、"yes/no"、"on/off"等信息,则可将它声明为布尔类型。

布尔类型的缺省值为False.

   5.变体型数据类型

   数据类型为变体型的变量可以存储所有系统定义类型的数据。

变体型数据类型可在不同场合代表不同的数据类型。

如果把数据赋予变体变量,则不必在这些数据的类型间进行转换:

VsiualBasic会自动完成任何必要的转换,例如,如果变量Myvariant为变体型变量,下面是该变量的几条赋值语句以及说明:

   Myvariant="15"              变量值包含两个字符的字符串

   Myvariant=17-Myvariant        此时变量值为数值2

   Myvariant="A"&Myvariant    此时变量值我为字符串"A2"

变量的声明

在使用变量前,一般要先声明变量名及其类型,以决定系统为变量分配的存储单元。

在VB中可以通过以下几种方式来声明变量及其类型;

   1.使用Dim语句

   使用Dim语句声明变量的一般形式如下:

   Dim变量名AS数据类型。

   例如:

   DimNuberAsInteger

   DimCountAsSingle

   DimNameasString

   也可以使用数据类型的类型符来替代As子句。

例如,上述3个声明语句也可写成:

   DimNumber%

   DimCount!

   DimName$

   注意:

变量名与类型符之间不能有空格

   一条Dim语句也可以声明多个变量,每个变量都需要有自己的声明类型,并且各变量之间以逗号隔开。

例如,可以将上面的3条语句改写成一条语句:

   DimNumberAsInteger,CountAsSingle, NameAsString

   如果忽略了Dim语句中的As子句,则VB将变量的类型认为是变体型。

   例如下面语句声明的Myv变量的数据类型是变体型:

   DimMyv

   在默认情况下,字符串变量是不定长的,随着对字符串变量赋予新的数据,它的长度可增可减,也可以将字符串变量声明为定长的。

声明一个定长字符串变量的语法如下:

   Dim变量名AsString*长度

   例如,声明一个长度为50个字符的字符串变量,可用下列语句:

   DimNameAsStrring*50

   如果赋给该定长字符串变量的字符少于50个,则用空格将Name变量的不足部分填满。

因为定长字符串用空格填充尾部多余的空间,所以在处理定长字符串时可发现,删除空格的Trim和Rtrim函数是很有用的。

如果赋给的字符串的长度大于50,则VB会自动截去超出部分的字符。

例如,编写窗体的Click事件过程如下:

   PrivateSubFrom_Click()

   DimstrlAsString

   Dimstr2AsString*4

   Dimstr3AsString*2

   Str1="中华人民共和国"

   Str2="中华人民共和国"

   Str3="中华人民共和国"

   Printstr1

   Printstr2

   Printstr3

   EndSub

   在该段代码中,声明了3个字符串变量。

其中Strl为不定长字符串变量,Str2和Str3为定长字符串变量,并且长度分别为4和2.为这3个字符串变量赋予相同的值"中华人民共和国".然后使用Print语句在窗体上分别打印出各字符串变量。

   运行该程序,单击窗体,则窗体上打印出3行文字,如图3.3所示。

由于字符串变量Str2最多能存储4个字符,因此,字符串"中华人民共和国"的后3个字符被截去。

同理,Str3中只存储了两个字符,其他字符被截去。

   2.隐式声明

   在VB中,也可以不事先声明而直接使用变量,这种方式称为隐式声明。

上述使用Dim语句声明变量的方式称为显式声明。

所有隐式声明的变量都是变体型数据类型。

   在使用一个变量之前并不必先声明这个变量。

例如,不必在使用变量TempVal之前先声明它:

   FunctionsafeSqr(num)

   TempVal=Abs(num)

   SsfeSqr=Sqr(TempVal)

   EndFunction

   VB用这个名字自动创建一个变量,使用这个变量时,可以认为它就是显式声明的。

虽然这种方法很方便,但是如果把变量名拼错了的话,系统会认为它是另一个新的变量,从而会导致一个难以查找的错误。

如果知道变量确实总是存储特定类型的数据,最好还是先声明变量的数据类型,这样VB会以更高的效率处理这个数据。

例如,存储人名的变量最好声明成字符串数据类型,因为名字总是由字符组成的。

   为了避免写错变量名引起的麻烦,可以在【代码】窗口的声明段中加入语句:

   OptionExplicit

   这样,在代码中只要遇到一个未经显式声明就当成变量的名字,VisualBasic都会弹出错误警告。

   例如,编写一段代码如图3.4所示,其中声明了变量s1,而没有声明变量s2,运行该程序,单击窗体,则弹出编译错误消息框,提示用户变量未定义。

如果删除optionExplicit语句,再次执行程序,则不会再出现变量未定义的错误。

   也可以将系统定制为总要求显式声明变量。

执行【工具】菜单中的【选项】命令,打开如图3.5所示的【选项】对话框,在【编辑器】选项卡中选中【要求变量声明】复选框。

这样就在任何新建的模块中自动插入如OptionExplicit语句,但不会在已经建立起来的模块中自动插入。

所以在工程内部,只能用手工方法向现有模块添加OptionExplicit语句。

   注意:

OptionExplicit语句的作用范圈仅限于语句所在模块,所以,对每个需要强制式变量声明的窗体棋块和标准摸块,都必须将OptionExplicit语句放在它们各自的声明段中。

变量的作用域

一个变量声明后,并不是在任何地方都能使用它。

每个变量都有它的作用域。

变量的作用域决定了哪些子过程和函数过程可使用该变量。

变量的声明方式和声明位置决定了它的作用域。

   在理解变量的作用域之前,首先需要了解一个应用程序的组成。

一般应用程序的组成如图3.6所示。

   关于在工程中添加窗体与模块的操作在第2章中已经介绍过了。

本书只涉及到窗体模块和标准模块。

标准模块主要要来定义一些公用的变量和过程,以供各窗体模块中的事件过程引用。

   变量的作用域可分为3个层次:

局部变量、模块级变量和全局变量。

表3.2中列出了变量的作用范围及使用规则。

   注意:

如不加特别说明,模块是指对窗体模块与标准模块的统称。

1.局部变量。

   局部变量是指在过程内部使用Dim语句或Static语句声明的变量。

在过程内不加声明而直接使用的变量也是局部变量。

我们知道,一个应用程序包含若干个模块,模块中又包含若干个过程。

对于局部变量,只能在声明它的过程中使用,本模块的其他过程以及其他模块均不可访问。

   在不同的过程中可以声明相同名称的变量,它们相互独立,互不干扰。

   2.模块级变量。

   模块级变量是指在模块的任何过程之外,即在模块的声明部分使用Dim语句或Private语句声明的变量。

可被本模块的任何过程访问。

   3.全局变量。

   全局变量是指在模块的任何过程之外,即在模块的"通用声明"段使用Public语句声明的变量。

可被本模块的任何过程访问。

需要注意的是。

在窗体模块声明的全局变量,在访问时需要在变量名前加窗体名。

而在标准模块中声明的全局变量可以直接访问。

   例如,在窗体模块中定义了四个变量A、B、C和D,如图3.7示。

则A为全局变量,B为模块级变量,C和D为局部变量。

   需要说明的是,在VB中作用域不同的变量的名称可以相同,并且作用域小的变量的优先级高。

静态变量

在过程中,既可以使用Dim语句声明局部变量,也可以使用Static语句声明局部变量。

并且Static语句的一般形式与Dim语句相同:

   Static变量名As数据类型。

   使用Static语句声明的变量称为静态变量,它与用Dim语句声明的变量的不同之处在于:

当一个过程结束时,过程中所用到的静态变量的值会保留,下次再调用此过程时,变量的初值是上次调用结束时被保留的值。

   对于使用Dim语句声明的局部变量,随过程的调用而分配存储单元,并进行变量的初始化。

一旦过程结束,变量的内容自动消失,占用的存储单元也被释放。

因此,每次调用过程时,变量都将重新初始化。

   下面,用一个实例来说明静态变量的特点。

   实例3.1静态变量

   在【代码】窗口中编写窗体的Click事件过程如下:

   PrivateSubForm_Click()

   DimSumAsInteger

   PrintSum

   Sum=Sum+1

   EndSub

   运行程序,在窗体上单击数次,窗体上显示的数字始终是0,如图3.8所示。

   将上述代码中的Dim替换成Static,如下所示:

   PrivateSubForm_Click()

   StaticSumAsInterger

   PrintSum

   Sum=Sum+1

   EndSub

   再次运行程序,则每单击一次窗体,显示的数字加1,如图3.9所示。

常量

 在程序执行过程中数值始终不改变的变量称为常量。

例如,如果要进行数学计算,则程序中可能多次出现数值pi(3.14159……),如果将这个值使用一个常量pi来表示,在程序中就可以使用常量pi来替代常数3.14159,而不必一遍遍地输入3.14159.

   定义常量的形式如下:

   Const<常量名>[As类型]=常量值常量的命名规则和变量一样。

As子句是可选的,它用来说明常量的数据类型,如果省略,则数据类型由表达式决定。

常量值可以是数字、字符串或由它们与运算符组合成的简单表达式。

   例如:

   ConstpiAsDouble=3.14159265358979

   ConstStr="ABCDEF"

   ConstStr=(2+3)*7

   常量声明中不能使用函数,例如:

   ConstNum=Sin(30).

   语句是错误的。

   常量声明语句中可以包含其他常量。

例如,在数字计算中,数值pi和数值2*pi样常用,可以将这两个值都声明为常量如下:

   ConstpiAsDouble=3.14159265358979

   Constpi2AsDouble=2*pi

   一旦声明了常量,就不能在此后的语句中改变它的数值,这是个安全特性,也是声明常量的一个好处。

例如,如果在程序"1"使用赋值语句来给常量赋值,编译程序将产生错误,并弹出消息框提示用户不允许给常量赋值:

   常量也有作用范围的概念,这一点与变量相同。

例如常量pi通常在模块中声明为:

   PublicConstpiAsDouble=3.1415926358979

   以便每个过程都能访问它。

   VB自身还定义了大量的内部常量。

例如,复选框控件的Value属性的值可以为0(取消)、1(选定)或2(变灰).可以不用下列语句:

   Checkl.Value=0.

   Check2.Value=2.

   而使用内部常量vbUnchecked和vbGrayed来代替0和2:

   Check1.Value=vbGrayed.

   Check2.Value=vbGrayed.

   常量vbUncheckedt和YbGrayed是VB语言固有的,无需声明,其符号化的名称使程序更容易阅读和维护。

VisuatBasic固有常量均用前缀vb表示,声明自己的常量时不要用这个前缀。

其他构件用其他的前缀,例如,数据库访问对象用前缀为db的常量。

算术运算符

程序中对数据的操作,其实就是指对数据的各种运算。

被运算的对象,如常数、常量和变量等称为操作数。

运算符是用来对操作数进行各种运算的操作符号,如加号(+)、减号

(一)等。

诸多操作数通过运算符连成一个整体后,就成为一个表达式。

   VB中具有丰富的运算符,可分为算术运算符、关系运算符、逻辑运算符和字符串运算符4种。

   算术运算符用来进行算术运算。

VB提供的算术运算符如表3.3所示。

   其中取负运算符

(一)只需一个操作数,称之为单目运算符。

其他运算符都需要两个操作数,称之为双目运算符。

   运算符的优先级表示当表达式中有多个操作符时,先执行哪个操作符。

   整除运算(\)的结果是商的整数部分。

例如,7\2表示整除,商为4.5,结果取整数部分3,不进行四舍五入。

如果参加整除的操作数是浮点数,则先按四舍五入的原则将它们变成整数,然后再执行整除运算。

例如,对于8.5\2,先将8.5变成9再进行整除,商为44.5,结果为4。

   取余运算(Mod)是求两个整数相除后的余数。

如果参加取余运算的操作数是浮点数,则先按四舍五入的原则将它们变成整数,然后再执行取余运算。

例如,对于8.5\2.1,先将8.5变成9,2.1变成2,然后9除以2与1,因此取余结果为1。

关系运算符

关系运算符用来对两个操作数进行大小比较。

关系运算的结果是一个逻辑量,True〔真)或False(假).如果关系成立,则值为True,否则值为False.在VB中,True用-1表示,False用O表示。

VB中有6种关系运算符,如表3.4所示。

   用来比较的操作数可以是数值型,也可以是字符串型。

数值以大小进行比较是显然的。

字符串的比较是按照字符的ASCII码值的大小来比较的。

即首先比较两个字符串第一个字符,ASCII码值大的字符串大。

如果第一个字符相同,则比较第二个字符,依次类推。

例如,由于小写字母的ASCII码大,因此关系表达式"abc">"abc"的值为Ture.关于字符的ASCII码对照表,读者可参见本书下一章。

逻辑运算符

   逻辑运算符的作用是对操作数进行逻辑运算。

操作数可以是逻辑量(True或False)或关系表达式。

逻辑运算的结果也是一个逻辑量。

表3.5中列出了VB中的6种逻辑运算符。

字符串运算符

字符串运算符有两个:

"&"和"+",它们的作用是将两个字符串拼接起来。

   例如:

   "VisaulBasic"&"程序设计语言结果为"     结果为"VisaulBasic程序设计语言"

   "电脑"+"爱好者"                        结果为"电脑爱好者"

   StrS="计算机"

   str&"与网络"                           结果为"计算机与网络"

   注意:

变量名与&之间一定要加一个空格。

因为&本身还是长整型的类型符,不加空格容易造成误会。

   "&"运算符会自动将非字符型的数据转换成字符串

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1