Visual Basic 程序设计教程(第2版)第2章end_第1页
Visual Basic 程序设计教程(第2版)第2章end_第2页
Visual Basic 程序设计教程(第2版)第2章end_第3页
Visual Basic 程序设计教程(第2版)第2章end_第4页
Visual Basic 程序设计教程(第2版)第2章end_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章VisualBasic编程基础

2.1数据类型

2.1.1标准数据类型

2.1.2自定义类型2.2变量与常量

2.2.1变量名的命名规则

2.2.2变量声明

2.2.3变量的作用域

2.2.4常量2.3运算符及表达式

2.3.1运算符

2.3.2表达式2.4基本语句

2.4.1赋值语句

2.4.2条件语句

2.4.3循环语句2.5数组

2.5.1静态数组

2.5.2动态数组

2.5.3控件数组

2.6过程与函数

2.6.1子过程

2.6.2函数过程

2.6.3过程和函数的定义

2.6.4过程的调用

2.6.5参数传递2.7编写代码基础返回第2章VisualBasic编程基础

本章目的:通过本章学习了解有关VB编程的基本知识。本章重点:VB的有关语法规则。本章难点:有关VB控件数组和过程的基本知识。2.1数据类型只有相同(相容)类型的数据之间,才能进行操作,否则就会出现错误。数据类型主要可分为标准数据类型和自定义数据类型两大类。2.1.1标准数据类型标准数据类型是系统定义的数据类型。2.1.1标准数据类型1.数值(Numeric)型数据(1)整型(Integer)和长整型(Long)整型和长整型数就是不带小数部分的数在数字后加&符号,表示长整型数(2)单精度浮点型(Single)和双精度浮点型(Double)浮点型数用来表示带有小数部分的实数,浮点实数表示数的范围大,但有误差。用科学计数法表示超出范围的浮点实数2.1.1标准数据类型(3)字节型(Byte)字节型数表示无符号的整数,范围为0~255,主要用于存贮二进制数。(4)货币型(Currency)货币型数可最多保留小数点右面4位和小数点左面15位,它是一个精确的定点数据类型,适用于货币计算。其表示形式是在数字后面加@符号。2.字符(String)型数据字符型数据是指用双引号括起来的一串字符。2.1.1标准数据类型(1)变长字符串变长字符串是指字符串的长度是不固定的。(2)定长字符串定长字符串是指它在程序执行过程中,始终保持其长度不变的字符串。3.布尔(Boolean)型数据布尔型数据只有True和False两个值,常用于表示逻辑判断的结果。2.1.1标准数据类型4.对象(Object)型数据用来表示应用程序中的对象,可以用set语句来指定一个被声明为object的变量,去引用应用程序中的任何实际对象。例如:SubForm_Click()DimTempAsObjectSetTemp=Form1EndSub

2.1.1标准数据类型5.日期(Date)型数据Date型数据用来表示日期和时间,用8个字节的浮点数来存贮,其表示的日期范围从100年1月1日到9999年12月31日,而时间可以从00:00:00到23:59:59。日期型数据使用时,要注意须使用#括起来不能识别包含汉字的日期

6.变体(Variant)类型数据变体类型也称为通用类型,是可变的数据类型,它可以表示所有系统定义类型的数据。

2.1.1标准数据类型例如:

Dim

Temp

As

VariantTemp=5.5

ˊ赋值一个实数Temp=“VisualBasic”ˊ赋值一个字符串Temp=#22/12/2000#ˊ赋值一个日期2.1.2自定义类型由若干个标准数据类型组成

它的一般形式为:

2.1.2自定义类型Type

自定义类型名元素名As

类型

...

元素名As

类型End

Type例如,定义一个有关学生信息的自定义类型:Type

Student

Stuno

As

Integer

ˊ学号

Stuname

As

String*10

ˊ姓名

Stusex

As

String*1

ˊ性别

Stutotal

As

Single

ˊ总分End

Type

2.1.2自定义类型定义自定义类型后,可以在变量声明中使用该类型,例如:Dim

a

As

Student引用a变量中的某个元素,使用以下形式:变量名.元素名例如:引用学生的姓名,可写a.Stuname2.2变量与常量2.2.1变量名的命名规则

变量须以字母开头。变量所用的字符只能由字母、数字和下划线组成,不能含有标点、空格等字符。字符个数不得超过40个字符不得使用visualBasic6.0的保留字。2.2.2变量声明1.用dim语句声明变量Dim语句声明变量格式如下:

2.2.2变量声明Dim

变量名As

数据类型一条dim语句可以同时声明多个变量,但每个变量必须有自己的数据类型声明。例如:

Dim

X

As

IntegerDim

Name

As

StringDim

Count

As

Integer,Sum

As

Single2.用static

语句声明变量Static

语句声明变量格式如下:Static

变量名As

数据类型2.2.2变量声明使用static

声明的变量称为静态变量,它与dim语句声明的变量区别:执行一个过程结束时,用static声明的变量值会保留,用dim语句声明的变量值不保留,每次调用时重新初始化。例如:Private

Sub

CmdOk_Click()

Dim

X

As

Integer

Static

Y

As

Integer

X=X+1

Y=Y+1End

Sub

2.2.2变量声明第一次调用此过程时,系统对x,Y赋以缺省值均为0;第二次调用此过程时,变量x的值初始化为0,变量y的初始值为1。

3.用public语句声明变量Public语句声明变量格式如下:Public变量名As数据类型

Public语句声明变量只能在全局模块中使用,它声明的变量,工程中的所有模块都可以引用。如果一个过程或函数使它的值发生了改变,那么使用它的其它过程和函数也会受到相应的影响.

2.2.2变量声明4.隐式声明程序中不经声明而使用的变量,称为变量的隐式声明。使用类型符隐含声明变量的数据类型

2.2.3变量的作用域

变量按它们的有效作用范围不同,可分为局部变量、窗体和模块级变量和全局变量

1.局部变量在一个过程内部定义的变量称为局部变量,它只能在本过程内有效。

2.2.3变量的作用域2.模块级变量(窗体变量)如果一个窗体中的不同过程,要使用同一个变量,就应该把它声明为模块级变量。

步骤如下:(1)首先进入代码编辑窗口;(2)在"对象列表框"中选择"通用"选项;(3)在"过程列表框"中,选择"声明"选项;(4)在窗口空白处,用变量声明语句定义变量。2.2.3变量的作用域如图所示

2.2.3变量的作用域3.

全局变量全局变量是在模块文件中用Public(或Global)语句定义的变量,它可以被工程中的所有模块引用。

2.2.4

常量1.用户定义的常量

格式如下:[Public/Private]Const常量名[As

数据类型]=表达式Public

表示该常量可用于工程中所有模块。

2.2.4

常量Private表示常量只能在本模块中引用.缺省为Private

“As数据类型”用于说明该常量的数据类型

对于数值常数可用十制数表示,十六进制数(数值前加&h)或八进制(数值前加&O)表示。例如:

ConstPi=3.14159ˊ定义常量pi

ConstMaxAsInteger=&H266ˊ定义常量Max为整型,用16进制表示。2.2.4

常量2.系统提供的常量

查看的方法是:(1)选择“视图“菜单”中的“对象浏览器”,则打开“对象浏览器”窗口,如图所示。2.2.4

常量

(2)上边的下拉列表中选择VBA对象库;

(3)在左边的类列表框中选择“全局”,右边的成员列表中可以显示系统提供的常量。窗口底端的文本区域中将显示该常量的功能。

2.3运算符和表达式2.3.1运算符1.算术运算符^(乘方)、-(负号)、*/(乘除)、\(整除)、mod(取模)、+-(加减)2.3.1运算符2.连接运算符“&”和“+”,它们都是将两个字符串连接起来。区别如下:(1)“+”连接符两边的操作数,若一个是数学字符串(如“123”),而另一操作数为数值,则执行数值相加运算。例如:“123”+456ˊ结果为579(2)“&”连接符进行连接操作前,系统先将操作数转换成字符型,然后再连接。例如:“abc”&123ˊ结果为“abc123”

2.3.1运算符3.

比较运算符比较运算符的作用是将两个操作数进行比较,若关系成立,则返回True,否则返回False

运算符功能

=等于

>大于

>=大于等于

<小于

<=小于等于

<>不等于

Like字符串匹配

Is对象引用比较2.3.1运算符在VisualBasic6.0中,增加了一个“Like”比较运算符,用于字符串匹配,可与通配符“?”/“#”/“*”和[范围][!范围]结合使用,例如:“VisualBasic”Like“Ba”ˊ结果为True4.

逻辑运算符逻辑运算符的作用是将操作数进行逻辑运算,结果是逻辑值True或False。

运算符功能优先级Not取数1And与2Or或3Xor异或3Eqv等价4Imp蕴含52.3.2表达式表达式是由变量、常量、运算符、对象和圆括号按一定的规则组成,每一个表达式都产生唯一的运算结果,运算结果的类型由数据和运算符共同决定。在VisualBasic6.0中有4类运算符,对应也有4类表达式:算术表达式,字符串表达式,关系表达式和布尔表达式。

2.4基本语句

2.4.1赋值语句格式为:变量名=表达式赋值号“=”两边的数据类型应一致。例如:DimXAsIntegerYAsIntegerX=Val(“123”)ˊ将“123”转换为数值Y=4.5ˊY为整型变量,Y的结果为5

2.4.1赋值语句为对象的属性设置属性值的一般格式:对象名·属性=属性值例如,为标签Lable1的Caption属性设置属性值:

Label1.Caption=“输入”2.4.2条件语句条件语句就是对条件进行判断,根据判断结果选择执行不同的分支。

2.4.2条件语句(1)If条件Then语句该语句的作用是,如果条件满足,则执行语句中的内容。语句中只能是一条语句,或用冒号分隔的多条语句,但必须在一行上书写。(2)If条件Then

语句块

EndIf

2.4.2条件语句(3)If条件Then

语句块1Else

语句块2EndIf2.4.2条件语句(4)If条件1Then

语句块1ElseIf条件2Then

语句块2……ElseIf条件NThen

语句块NElse

语句块N+1EndIf2.4.2条件语句例2.1用一文本框输入一学生成绩,判断该成绩的等级(优、良、中、及格、不及格)并用一标签显示判定结果。(1)在窗体上创建一个文本框,一个标签和一个命令按钮并调整它们的位置和大小如图所示。(2)设置各控件属性

控件属性属性值文本框NameTextText1空标签NameCaptionLabel1空命令按钮NameCaptionCommand1“执行”2.4.2条件语句(3)打开代码窗口,创建事件过程PrivateSubCommand1_Click()DimScoreAsSingleScore=Val(Text1.Text)IfScore<60ThenLabel1.Caption=“不及格”

ElseIfScore>=60AndScore<=70ThenLabel1.Caption=“中”2.4.2条件语句

ElseIfScore>80AndScore<=90ThenLabel1.Caption=“良”

ElseIfScore>90AndScore<=100ThenLabel1.Caption=“优”

ElseLabel1.Caption=“成绩有错”

EndIf2.4.2条件语句(4)

SelectCase语句(分情况语句)SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2……Case表达式列表n语句块n2.4.2条件语句CaseElse

语句块n+1EndSelect

“变量或表达式”:数值型或字符串。“表达式列表”:是一表达式具体值,每一个值确定一个分支。还有三种形式的设定范围:一组枚举表达式(用逗号分隔)。例如:

Case2,4,6,8ˊ表示条件在2,4,6,8范围内取值2.4.2条件语句表达式1TO表达式2。例如:Case85TO100ˊ表示条件的取值范围从85~100IS关系表达式。例如:CaseIS>5ˊ表示条件在大于5范围取值

例2.2将例2.1中的计算,用SelectCase语句编程实现。其事件过程如下:

2.4.2条件语句PrivateSubCommand1_Click()DimScoreAsSingle,DjAsStringScore=Val(Text1·Text)SelectCaseScoreCaseIS<60]

Dj=“不及格”

Case60TO70

Dj=“及格”

Case71TO80

Dj=“中”2.4.2条件语句

Case81TO90

Dj=“良”

Case91TO100

Dj=“优”

CaseElse

Dj=“成绩有错”

EndSelectLabel1.Caption=“成绩等级为:”&DjEndSub2.4.2条件语句(6)IIF函数与Chose函数

①IIF函数IIF函数的格式如下:IIF(条件表达式,条件为真时的值,条件为假时的值)

“条件表达式”可以是关系表达式、布尔表达式、数值表达式。如果用数值表达式,则非0为真,0为假。例如:

将A、B中的大数,放入Max变量中,语句如下:Max=Iif(A>B,A,B)

2.4.2条件语句②Chose函数Chose函数的格式如下:Chose(数字型变量,值为1的返回值,值为2的返回值……)。例如:根据n的值1-3,转换成“风”,“雨”,“雪”的语句如下Tq=Chose(n,“风”,“雨”,“雪”)

2.4.3循环语句

(1)DO……Loop语句

该语句有4种语法格式:

2.4.3循环语句①DOWhile……Loop语句DOWhile条件循环体Loop②DO……LoopWhile语句DO循环体LoopWhile条件2.4.3循环语句③DoUntil……Loop语句语句格式如下:DoUntil条件循环体Loop条件为真时终止循环,条件为假时执行循环体。

④Do……LoopUntil语句Do

循环体LoopUntil条件2.4.3循环语句在上述各格式的DO……Loop语句循环体中的任何位置,放置ExitDO语句,随时退出循环。

(2)For……Next语句For循环变量=初值TO终值[Step步长]循环体Next循环变量For……Next语句中的循环变量为数值型,步长缺省值为1,在循环体中的任何位置放置ExitFor语句,随时退出循环。

2.4.3循环语句例2.3分别用上述几种格式循环语句编写求1+2+3+……+100和的程序。(1)在窗体上创建6个命令按钮和两个标签框(其中5个命令按钮分别控制一种格式循环语句的执行。一个命令按钮用于结束程序执行;两个标签用于显示输出结果),调整它们的大小和位置,如图所示。2.4.3循环语句(2)设置控件的属性如表所示。

控件属性属性值命令按钮1NameCaptionCommand1DoWhileLoop命令按钮2NameCaptionCommand2DoWhileLoop命令按钮3NameCaptionCommand3DoWhileLoop命令按钮4NameCaptionCommand4DoWhileUntil命令按钮5NameCaptionCommand5ForNext命令按钮6NameCaptionCommand6Exit标签1NameCaptionLabel1空标签2NameCaptionLabel2空洞2.4.3循环语句(3)打开代码窗口,创建事件过程创建使用DOWhile……Loop语句事件过程:PrivateSubCommand1_Click()DimIAsInteger,SumAsIntegerI=1Sum=0DoWhileI<=100Sum=Sum+II=I+12.4.3循环语句

LoopLabel1·Caption=“DoWhile…Loop结果:”

Label2·Caption=Format(Sum)EndSub创建使用Do……LoopWhile语句事件过程PrivateSubCommand2_Click()DimIAsInteger,SumAsIntegerSum=0I=12.4.3循环语句

DoSum=Sum+1I=I+1LoopWhileI<101Label1.Caption=“Do……LoopWhile结果为:”

Label2.Caption=Format(Sum)EndSub2.4.3循环语句创建使用DoUntil……Loop语句事件过程:PrivateSubCommand3_Click()DimIAsInteger,SumAsIntegerSum=0I=1DoUntilI>100Sum=Sum+II=I+1Loop2.4.3循环语句

Label2.Caption=Format(Sum)Label1.Caption=“DOUntil……Loop结果为:”EndSub

创建使用Do……LoopUntil语句事件过程PrivateSubCommand4_Click()DimIAsInteger,SumAsIntegerSum=0I=12.4.3循环语句

DoSum=Sum+II=I+1LoopUntilI>100Lable1.Caption=“Do……LoopUntil结果为:”

Lable2.Caption=Format(Sum)EndSub2.4.3循环语句创建使用For……Next语句的事件过程:PrivateSubCommand5_Click()DimIAsInteger,SumAsIntegerSum=0ForI=1TO100Sum=Sum+INextILabel1.Caption=“For……Next结果为:”

Label2.Caption=Format(Sum)EndSub2.4.3循环语句创建结束程序运行事件过程:PrivateSubCommand6_Click()

EndEndSub

2.5数组

数组是一组按一定顺序排列,且具有相同类型的变量的集合。使用数组可用一个数组名代表逻辑上相关的一批数据,用下标表示该数组中的各个元素数组应先声明后使用在VisualBasic6.0中有两种形式的数组:静态数组和动态数组。静态数组其数组元素的个数固定不变,而动态数组其元素的个数在运行时可以改变。

2.5.1静态数组1.一维数组声明一维数组格式如下:Dim数组名([下界TO]上界)[AS类型]声明数组时,下界可以省略,其默认值为0,一维数组的大小为:上界-下界+1。“AS类型”说明数组元素的数据类型,缺省是变体数组。例如:

DimArray[1TO10]ASIntegerˊ下标号从1~10,共10个元素。

DimSum[5]ASDouble’ˊ共6个元素,下标号从0~5。2.5.1静态数组2.多维数组声明多维数组的格式如下:

Dim数组名([下界1TO]上界1,[下界2TO]上界2……)[AS类型]下界和上界的个数,决定了数组的维数,每一维的大小为:上界-下界+1,数组的大小为每一维数组元素个数乘积。例如:

DimArray(0TO4,0TO5)ASInteger或DimArray(4,5)ASInteger

2.5.1静态数组可使用OptionBase语句设定数组的下界。例如:OptionBase12.5.2动态数组动态数组在声明时只定义数组名,不指定数组的大小,在程序执行过程中,根据需要用Redim语句重新定义数组的大小。格式如下:

Redim

数组名(下标1[,下标2……])下标可以是常量,可以是有了确定值的变量。

2.5.2动态数组例如:DimArray()ASIntegerSubForm_Load()……

RedimArray(5,6)……EndSub2.5.3控件数组1.控件数组的概念.控件数组是由一组相同类型的控件组成,它们共用一个控件名,具有相同的类型,并共享同样的事件过程。当建立一个控件数组时,系统自动给每个元素赋一个唯一的下标索引号(Index)。一个控件数组至少应有一个元素,最多可有32767个元素,其第一下标索引号为0。

2.5.3控件数组例如,创建一个包括5个命令按钮的控件数组CmdDate

,则无论单击哪一个命令按钮,都将调用同一个事件过程:

PrivateSubCmddate_Click(IndexAsInteger) … IfIndex=1Then …EndIf …EndSub2.5.3控件数组VisualBasic将把被单击命令按钮的Index值送给事件过程,以区分控件数组中的各个元素。2.建立控件数组的方法建立控件数组常用以下步骤来实现:(1)在窗体上画出控件数组的第一个控件,并设置其name等相关属性;(2)选中该控件,并选择“编辑”菜单中的“复制”命令;

2.5.3控件数组(3)在“编辑”菜单中,选择“粘贴”命令,此时将显示一个询问对话框,询问是否要建立一个控件数组?选择“是”后,就建立了一个控件数组元素,其Index属性为1,而画出的第一个控件的Index属性值为0。(4)多次进行“粘贴”操作,建立所需个数的控件元素。(5)建立共享的事件过程2.5.3控件数组3.运行时添加或删除控件数组元素在运行时,可用Load语句添加控件数组元素,也可用Unload语句删除控件数组中的某一个控件。但是,添加控件元素,必须在设计时创建一个Index属性为0的控件,然后在运行时,才能使用Load语句添加数组元素。

Load语句和Unload语句的语法格式如下:

Load控件数组名(Index)

Unload控件数组名(Index)2.5.3控件数组例2.4建立有5个命令按钮的控件数组,当单击某个命令按钮时,在文本框中分别显示每个法定节假日的休息时间。如图所示。

2.5.3控件数组(1)在窗体上建立一个命令按钮Cmddate,作为控件数组第一个元素。(2)选中该命令按钮,进行“复制”和“粘贴”操作,在系统显示有关建立控件数组的提示后,单击“是”按钮,建立控件数组第二个元素。然后再进行3次“粘贴”操作,就建立了有5个元素的控件数组。其下标Index分别为0~4。设置其Caption属性分别为“元旦”、“春节”、“51”、“101”、“退出”。(3)建立一个文本框Text1,设置其Text属性为空。2.5.3控件数组(4)打开代码窗口,创建事件过程。PrivateSubCnddate_Click(IndexAsInteger)SelectCaseIndexCaseO Text1.Text=Cmddate(Index).Caption&”:放假1天”

Case1 Text1.Text=Cmddate(Index).Caption&”:放假3天”

2.5.3控件数组

Case2Text1.Text=Cmddate(Index).Caption&”:放假3天”

Case3Text1.Text=Cmddate(Index).Caption&”:放假3天”

CaseElseEndEndSelect EndSub2.6过程与函数

过程是完成某种特定功能的一组独立程序代码。

2.6.1子过程子过程分为事件过程和通用过程两大类。事件过程是当某个事件发生时,对该事件作出响应的程序段。通用过程是独立于事件过程之外,可供其它事件过程调用的程序段。1.事件过程当某个对象对一个事件的发生作出响应时,自动地调用与该事件相关的事件过程。2.6.1子过程事件过程名是由对象的实际名字(在Name属性中规定的)下划线“—”和事件名组合起来构成的。

所有的事件过程都使用相同语法,其语法格式如下:PrivateSub对象名_事件名([形参表])语句组EndSub

2.6.1子过程方法是在代码窗口中:(1)在“对象”列表框中,选定当前活动窗体中的对象名(如Cmdexit)。(2)在“过程”列表框中,选择指定对象的事件名。(如Click)系统会在代码窗口中生成该对象所对应的某一事件过程的模板。2.6.1子过程2.通用过程它由别的过程来调用。可以放在窗体或标准模块中。

定义通用过程的一般格式如下:[Public|Private|Static]Sub过程名([形参表])语名组EndSub2.6.1子过程“形参表”中出现的参数称为形式参数,简称为形参或亚元。其具体格式为:([Byval]变量名[()][AS类型][,Byval]变量名[()][AS类型……])Byval:表示当该过程被调用时,参数是值传递,若省略则为地址传递。变量[()]:若省略括号代表一个变量,否则为传递整个数组。过程中可使用ExitSub提早退出过程2.6.2函数过程函数过程是过程的另一种形式,它与子过程不同的是,函数过程可以返回一个值给调用程序。

定义函数过程的一般格式如下:[Public|Private|Static]Function函数名(形参表)[AS类型]语句函数名=表达式语句EndFunction2.6.2函数过程“AS类型”说明返回值的类型。在函数过程的定义中,通过赋值语句将表达式的值赋给函数名,该值就是函数过程的返回值。在函数过程中可使用ExitFunction提早退出函数过程。2.6.3过程和函数的定义1.用代码窗口直接定义(1)在“对象”列表框中选择“通用”(2)

在“过程”列表框中选择“声明”(3)

键入Sub和子过程名或Function函数过程名。2.6.3过程和函数的定义2.利用“工具”菜单下的“添加过程”命令定义(1)打开代码窗口;(2)

选择“工具”菜单下的“添加过程”命令,打开“添加过程”对话框,如图所示。2.6.3过程和函数的定义(3)在“名称”框中输入过程名;(4)在“类型”框架中选取“子程序”来定义子过程或选取“函数”定义函过程;(5)在“范围”框架中若选取“公有的”则定义一个公共级全局过程;若选取“私有的”,则定义一个标准模块板/窗体板的局部过程。(6)

单击“确定”后,系统自动建立一个子过程或函数过程模板,就可以在其中编写过程代码。2.6.4过程的调用1.子过程的调用(1)

使用Call语句调用子过程,格式如下:Call子过程名([实参表])(2)直接使用子过程名调用子过程,其格式如下:子过程名[实参[,实参]……]2.函数过程的调用

格式如下:

变量名=函数过程名(实参表)

2.6.4过程的调用例2.5求1到5的阶乘之和(1)在窗体上创建二个标鉴和一个命令按钮并调整它们的位置和大小。如图所示

(2)设置各控件属性如表所示

控件属性属性值标签1NameCaptionLabel1“1!+Z!+……5!=”标签2NameCaptionLabel2空命令控钮NameCaptionCommand1“计算”2.6.4过程的调用(3)打开代码窗口,创建函数过程和事件过程计算任意数N的阶乘的Function过程Fact:FunctionFact(xASInteger)ASLongDimpASLong,iASIntegerp=1Fori=1Toxp=p*iNexti2.6.4过程的调用

Fact=pEndFunction计算的事件过程:PrivateSubCommand1_Click()DimSumASLong,iASIntegerFori=1To5Sum=Sum+Fact(i)NextiLabel2.Caption=SumEndSub2.6.5参数传递

1.按地址传递参数在VisualBasic中,参数默认是按地址传递的。所谓按地址传递参数就是当调用一个过程时,它将实参变量的地址传递给形参。这样,在被调用的过程中,对形参的任何操作都变成了对相应实参的操作。因此,实参变量的值就会随形参的改变而改变。

2.6.5参数传递2.按值传递参数按值传递参数时,只是将实参的值传递给形参,被调用过程的操作是在形参自己的存贮单元中进行的,当过程调用结束时,这些形参所占用的存贮单元也同时被释放。因此,在过程中对形参的任何操作不会影响到实参。2.6.5参数传递例2.6编写求数累加和的过程,Test1子过程按值传递参数,Test2按地址传递参数,试分析Print语句的输出结果。PublicSubTest1(ByvaliASInteger)i=i+1EndSubPublicSubTest2(iASInteger)i=i+1EndSub

2.6.5参数传递PrivateSubForm_Click()DimXASIntegerX=4Print“执行Test1前:X=”;XTest1XPrint“执行Test1后:X=”;XPrint“执行Test2前:X=”;XTest2XPrint“执行Test2后:X=”;XEndSub程序运行后的结果如下:

2.6.5参数传递X=4X=4X=4X=5当调用Test1时,是按值传递参数,因此在过程中对形参i的任何操作不会影响到实参X。当调用Test2时,将实参X的地址传递给形参,因此,在Test2中对形参i的任何操作都变成对实参X的操作,因此实参X的值就随之而改变。2.7编写代码基础

编写程序代码要遵循一定的规则,其主要约定如下:(1)将单行语句分成多行当一行代码过长时,可使用续行符(一个空格后面跟随一个下划线“_”),将长语句分成多行。(2)在一行上可以书写多个语句,语句间用“:”分隔。但一行最多允许255个字符。

(3)不区分大小写字母

2.7编写代码基础VisualBasic将对用户程序代码自动进行转换:对于VisualBasic中的关键字,其首字母总被转换成大写,其余字母被转换为小写。对于用户自定义的变量,过程名等,VisualBasic以其第一次的定义为准,以后输入的相同名称,将自动向首次定义的形式转换。

2.7编写代码基础(4)数制系统采用十进制、十六进制数(数值前加&H)和八进制数(数值前&O)。例如:i=&O377ˊ为八进制数377(十进制数255)J=&HFFˊ为十六进制数FF(十进制数255)(5)注释注释行是以Rem为开头;但一般常用撇号“ˊ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论