VB语言基础.docx

上传人:b****7 文档编号:10096516 上传时间:2023-02-08 格式:DOCX 页数:24 大小:36.25KB
下载 相关 举报
VB语言基础.docx_第1页
第1页 / 共24页
VB语言基础.docx_第2页
第2页 / 共24页
VB语言基础.docx_第3页
第3页 / 共24页
VB语言基础.docx_第4页
第4页 / 共24页
VB语言基础.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

VB语言基础.docx

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

VB语言基础.docx

VB语言基础

VB语言基础

一、数据类型

1、数值型:

取值范围:

Byte(字节型)━占1字节;0~255无符号

Integer(整型)━占2字节;-32768~32767

long(长整型)━占4字节;~

single(单精度浮点)━占4字节;略

Double(双精度浮点)━占4字节;略

Currency(货币型)━占8字节小数点左15位,右4位

(精确定点数据类型)

2、逻辑型:

Boolean(布尔型)━占2字节;true或false

3、字符串型:

Stringaa定长型占字符串长度,变长型再加10

4、日期型:

Date(日期型)━占8字节100-1-1~9999-12-31

5、对象型:

Object━占4字节;任何Object引用

6、变体型:

Variant━变体型数字占16字节,变体型字符占22字节+字符串长

注:

此类型还包含三种特定值:

Empty;Null;Error;

•7、用户定义的数据类型:

•用户可以利用Type语句定义自己的数据类型。

格式如下

•Type数据类型名

•数据类型元素名As类型名

•……

•EndType

•用Type可定义类似于C语言中的结构体类型。

例如:

•TypeDate_Rec

•RYearAsInteger

•RMonthAsString*3

•RDayAsInteger

•EndType

•注:

记录类型中的元素可以是字符串,但必须是定长字符串,其长度由类型名加上一个星号和常数指明。

•数据类型转换函数:

•函数名及书写格式转换结果

•CBool(表达式)布尔型

•CCur(表达式)货币型

•CByte(表达式)字节型

•CDate(表达式)日期型

•CDbl(表达式)双精度

•CSng(表达式)单精度

•CInt(表达式)整型

•CLng(表达式)长整型

•CStr(表达式)字符串

•Cvar(表达式)变体型

•二.变量

•1.变量名  V中变量的命名遵从标识符命名原则:

必须以字母开头;变量中间不能有空格;不能使用VB关键字;

•2.变量的声明  VB允许使用不声明的变量,即一个变量未经声明就可以在程序中使用。

这种变量使用方式称为隐含变量声明。

(使用隐含变量时,VB会自动创建变量,并赋予它变体类型。

在为其指定值之前,其值为Empty,当为它赋值后,会采用所赋值的类型作为自己的类型。

•显式声明:

•①用类型说明符:

将类型说明符加在变量名的尾部;

•②定义变量时指定其类型:

•格式:

Declare变量名As类型名

•其中的Declare可以是Dim,Static,Redim,Public中之一

•③用Deftype语句:

Deftype字母范围

•这里的Type是类型标志,Def是系统保留字,它们之间没有空格。

例如:

DefIntD-J

•该定义声明了D、E、F、G、H、I、J都是整型变量,而且以这些字母开头的变量名也都是整型变量。

•类型说明符:

•%:

整型;

•&:

长整型;

•!

单精度浮点型;

•#:

双精度浮点型;

•@:

货币型;

•$:

字符串型;

•字节、布尔、日期、对象及变体型没有类型说明符。

•注意:

•①Dima,b,cAsInteger是错误的。

只有c被声明成Integer,而a,b缺省为Variant类型。

•②如果使用DimxAsInteger语句声明了变量x为Integer,而在后面又使用带有类型说明符的该变量,如x$,x!

,x@和x#,程序运行时就会产生“duplicatedefinition”错误。

•③使用不带As的Dim语句,会被声明成变体类型的变量。

•④通过不带长度说明的字符串声明语句可以声明变长字符串。

•⑤对于声明布尔型的变量,其缺省值为False;

•⑥为声明为Date类型的变量赋值时,日期值应放在一对#之间,且多种日期和时间格式在VB中都是有效的。

•3.变量的作用域和生存期:

•变量的作用域——指变量的有效作用范围,也就是变量可以被访问的范围。

按以下三种方式来定义变量的作用范围:

•范 围说 明

•过程 在过程内使用Dim或Static

•私有 在模块开头加上Dim或Private

•公共在模块开头加上Public

•变量的生存期——指VB保存该变量值的时间,是变量在整个程序运行过程中的有效生存时间

1)过程层变量——过程层变量是指在过程或函数内部定义的变量,这种变量无论是用Dim还是Static声明,其作用域都只是该过程或函数体,在过程或函数外不能引用;

2)窗体层变量——窗体层变量是指在窗体的通用部分声明的变量,即不是在任何一个窗体内的过程或函数中声明的变量。

它的作用范围至少是窗体的存在范围,也就是说在窗体内的每个过程或函数中都可以使用窗体层变量。

•窗体层变量的声明有三种方式:

•用Dim语句声明。

•用Private语句声明。

•用Public语句声明。

•对于用Dim和Private声明的窗体层变量,其作用范围都是在所声明的窗体范围内。

用Public声明的窗体层变量作为窗体公用数据成员,可以在其他窗体或模块中以“窗体名.变量”方式引用。

其作用可以大于当前窗体范围。

窗体层变量在本窗体所有过程中都是可见的。

•3)模块层变量——模块(Module)是构成VB工程(Project)的一部分,是包含数据和过程的集合。

定义模块层变量只需在模块的通用部分加入Dim,Private,Global或Public等声明语句即可。

用Dim和Private声明的模块层变量作用域为所在模块范围,而用Public和Global定义的模块层变量则可以全局使用。

•注:

全局变量必须用Public或Global声明,不能用Dim

•三.常量

•常量是一个有意义的名字,用来表示程序运行时不变的数值和字符串。

•VisualBasic中的常量分为文字常量和符号常量两种,文字常量又可分为数字常量和字符串常量。

•符号常量(自定义常量):

在程序中程序员用Const声明的常量。

•使用常量时应注意:

(1)用Const声明的常量在程序运行过程中是不能被重新赋值的。

(2)在常量声明的同时赋值。

•(3)可以为声明的常量指定数据类型,如ConstconValAsCurrency=3.78,缺省时为所赋值的类型。

•(4)在用常量为常量初始化时注意,不可有循环引用。

例如:

•模块1中:

•Publicconstcon1=con2+8……

•模块2中:

•PublicConstcon2=con1*3……

•四.数组

•1.数组的定义:

•必须用Global或Dim语句定义。

Dim语句的语法格式如下:

•Dim数组名([lowerTo]upper,[[lowerTo]upper])[Astype]

•在这里,每对lower和upper为数组的一维,lower是该维下标的下限,upper是该维下标的上限,如不标明lower,其默认值为0。

Upper不可省略。

•例如:

(1)一维数组的定义:

•DimRecord(5)AsInteger

•定义了一个有六个数据元素的整型数组

(2)二维数组的定义

•DimMatrix(2,3)AsInteger

•该数组定义了一个二维数组,可以存储12个整型数,三行四列下标:

00,01,02,03,10,……23

•2.动态数组

•带有空()的Dim可以声明一个动态数组,如:

•DimdynArray()

•然后,可用ReDim语句在一个过程或函数中定义动态数组的维数和元素个数。

申请或重申请存储空间的一般格式为:

•ReDim[Preserve]数组名([lowerTO]upper[,[lowerTo]upper])[AsType]

•其中,Preserve为可选项,表示是否保护己有数据。

缺省时为不保护。

•例如:

ReDimdynArray(10)//为动态数组申请10个单元

•ReDimPreservemyArray(Ubound(myArray)+10)

•其中,Ubound函数返回数组的指定维的上限。

•这是一个保留原数据的增量分配数组

•五、枚举类型:

•当一个变量只有几种可能的值时,可将这个变量定义为枚举类型。

•枚举类型的声明放在窗体模块、标准模块或公用类模块中的声明部分,用Enum语句来定义,格式如下:

•[Public|Private]Enum类型名称

•成员名[=常数表达式]

•成员名[=常数表达式]

•--

•EndEnum

•默认情况下,枚举类型中的第一个常数被初始化为0,其后的常数逐项递增1。

•例如:

EnumDays

•Saturday

•Sunday

•Monday

•Tuesday

•Wednesday

•Thursday

•Friday

•EndEnum

•例如在如上定义的Days枚举类型的基础上,有如下单击某按钮的过程:

•PrivateSubCommand1_Click()

•DimMyDayAsDays

•MyDay=Saturday

•IfMyDay

•MsgBox“It’stheweekend!

•EndIf

•EndSub

•MyDay是一个枚举变量,Saturday的值为0,而Monday的数值为2,If中的条件成立

•六、运算符与表达式

•1.赋值运算符:

VisualBasic中的赋值运算符是“=”。

•2.数学运算符:

•优先级运算符说 明

•高^指数运算,如2^3=8

•-负号运算符

•*/乘除运算,其中除法(/)的所得结果

•为实数

•\整除。

所得结果为实际结果

•的整数部分

•Mod取模运算符,两数相除取余数

•+-加、减运算

•低&连接字符串。

•3.关系运算符:

=(等于);<>或><(不等);

•<(小于);>(大于);<=(小于等于);>=(大于等于);like(比较样式);Is(比较对象变量)

•4. 逻辑运算符:

•逻辑运算用于判断操作数之间的逻辑关系。

VB提供了非(Not)、与(And)、或(Or)、异或(Xor)、相等(Eqv)和隐含(Imp)逻辑运算。

逻辑运算符的优先级低于数学运算符和关系运算符。

逻辑运算符本身也有优先级,其顺序为Not,And,Or,Xor,Eqv,Imp。

•5、表达式的执行顺序:

•1)函数运算;

•2)算术运算;

•3)关系运算;(优先级:

=,<,>,<>,<=,>=)

•4)逻辑运算;

•注:

乘除法同时出现时,遵循从左到右顺序;括号的运算总是优先;字符串连接(&)不是算术运算符,但其优先顺序在所以算术运算符之后,又优先于其他运算符

•七、输入与输出:

•InputBox函数:

InputBox函数可以产生一个对话框,用于将用户从键盘输入的数据作为函数的返回值返回到当前程序中。

•①返回数值型数据。

格式如下:

• InputBox(prompt[,title][,defualt][,xpos,ypos][,helpfile,context])

•②返回字符串型数据。

格式如下:

 

•InputBox$(prompt[,title][,defualt][,xpos,ypos][,helpfile,context])

•其中的参数含义为:

•prompt:

一个字符串,显示出现在对话框中的用来提示用户的信息,最大长度为1024个字符。

•Title:

一个字符串,显示出现在对话框的顶部的标题信息。

•default:

一个字符串,用于显示输入缓冲区的默认信息,即用户在执行了InputBox函数后如果没有输入任何信息,则可用此字符串作为默认的输入值。

•xpos:

整数值,用于表示对话框与屏幕左边界的距离。

•ypos:

整数值,用于表示对话框与屏幕上边界的距离。

•Helpfile:

字符串型变量或字符串表达式,用于表示要用的帮助文件的名字。

•context:

整数型变量或表达式,用于表示相关帮助主题的目录号。

•Print方法——用于输出显示。

它既可以用于窗体,也可以用于其他控件上;它可以在窗体上显示文本字符串和表达式的值,也可以在其他图形对象或打印机上输出信息。

格式:

•[对象名称。

]Print[表达式表][,|;]

•对象名称是一个可选项,可以是窗体、图片框或打印机,如果省略,则在当前窗体上直接输出;

•表达式表是一个或多个字符串或数值表达式,用以原样输出字符串或表达式的值。

也是可选项。

如果省略,则输出一个空行;

•当需要输出多个字符串或表达式值时,各表达式间用逗号、分号或空格分隔,其中逗号分隔为标准输出格式,14个字符位为一个输出区段单位,逗号后面的表达式在下一区段输出,分号和空格分隔,则是按照紧凑格式输出;

•Print方法兼有输出和计算双重作用,即可以先计算表达式的值后输出;

•每执行一次Print方法将自动换行,要显示在同一行上,可以在前一Print方法行的末尾加上一个逗号或分号。

•与Print方法相关的还有一些函数和方法:

(1)Tab函数:

可以把光标移动到由参数n指定的位置,并从这个位置开始输出信息。

格式为:

•Tab(n)

•其中n为一个整数值,指出下一个输出位置的列号,如果当前位置已经超出n,则自动下移一行,默认最左边的列号为1;

•当n大于行宽时,显示位置为nMod行宽;

•当一个Print方法对应n个Tab函数时,每个Tab函数对应一个输出项,各输出项之间用逗号分隔。

(2)空格函数:

用空格函数可以返回n个空格,格式为:

•Space$(n)

•(3)Spc函数:

在用Print输出时可以用Spc函数跳过n个空格,格式为:

•Spc(n)

•(4)Cls方法:

使用Cls方法可以清除Print方法显示在对象上的内容,并将光标移动到对象的左上角(0,0)位置。

格式为:

•[对象。

]Cls

•其中,“对象”为可选项,如果省略,则清除当前窗体内的内容。

•例1:

设计一个程序,输入一组学生信息:

学号、姓名、性别、年龄和入学成绩。

用窗体单击事件激发。

•解:

PrivateSubForm_Click()

•num$=“请输入学号:

•msgtitle$=“学生登记表信息”

•nname$=“请输入姓名:

•sex$=“请输入性别:

•age$=“请输入年龄:

•sco$=“请输入入学成绩:

•Studentnum$=InputBox$(num$,Msgtitle$)

•Studentname$=InputBox$(nname$,Msgtitle$)

•Studentsex$=InputBox$(sex$,Msgtitle$)

•Studentage%=InputBox(age$,Msgtitle$)

•Studentsco%=InputBox$(sco$,Msgtitle$)

•Cls

•PrintStudentnum$;“,”;Studentname$;“,”Studentsex$;“,现年”

•PrintStudentage%;“岁”;“,入学成绩”;Studentsco%;“分”

•EbdSub

•(5)MsgBox函数:

VisualBasic中除了可以用Print方法在窗体或控件上输出程序执行结果等信息外,还提供了一种在适当的时候可在屏幕上显示一个对话框,让用户进行选择,并根据选择确定后续操作的功能。

•格式:

•MsgBox(prompt[,buttons][,title][,helpfile,context])

•各参数含义为:

•prompt:

一个字符串,最大长度1024字符,输出的提示信息,当一行显示不下时,自动换行;

•buttons:

整数值或符号常量,指示显示按钮的数目及形式,使用的图标样式,默认按钮是什么以及消息框的强制回应等等。

如果省略,其缺省值为0;

•title:

显示在对话框标题栏中的信息,缺省值为该应用程序名;

•helpfile:

字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件,如果有这个选项,则必须有context选项;

•context:

数值表达式,由帮助文件的作者指定给适当帮助主题的帮助上下文编号,同理,如果有这一选项,则必须有helpfile选项。

•表中的数值分为四类:

0~5为对话框中命令按钮的类型和数量,每个数值表示一种组合方式;16、32、48、64为指定对话框所显示的图标;0、256、512、768指定默认的活动按钮;0、4096用于应用程序和系统强制返回。

Buttons的参数值由这四类数值组成,其组成原则是从每一类中选择一个值,把这几个值加起来就获得了Buttons参数的值,在大多数应用中,只使用前三类,不同的组合会得到不同的结果。

例如:

•19=3+16+0:

显示“是”、“否”和“取消”按钮和“暂停”图标;

•34=2+32+0:

显示“终止”、“重试”和“忽略”按钮和“疑问”图标;

MsgBox的返回值如下表:

•例2:

设计一个窗体单击事件过程,要求程序执行时出现提示信息:

“请确认操作正确否?

”,并在消息框的标题上显示“操作确认”标题,如果回答“是”,则将返回值6赋予变量a,并在窗体上显示返回值的平方,否则,如果选择“否”,则返回值为7,在窗体上显示“重新操作并确认!

•该程序产生的对话框中有三个按钮即“是”、“否”、“取消”

•程序代码如下:

•PrivateSubForm_Click()

•DimMsgAsString,titleAsString

•DimaAsInteger

•Msg="请确认操作正确否?

"

•title="操作确认"

•a=MsgBox(Msg,19,title)

•Ifa=6Then

•Printa^2

•ElseIfa=7Then

•Print"请重新操作并确认!

"

•EndIf

•EndSub

•八、语句与控制流

•1、注释语句:

•注释用来说明程序中某些语句的功能和作用。

在VB中用“‘”和Rem来标识一条注释语句。

VB程序在解释运行或编译过程中,不会处理Rem后面那一行注释语句。

•2、赋值语句:

•目标操作符=源操作符

•//操作符两边的数据类型必需一致!

•3、暂停语句:

•格式:

Stop

•//当程序执行到Stop时,自动打开立即窗口

•4、结束语句:

格式:

End//常用于结束程序

•5、条件分支结构

(1) If…语句的三种格式:

•第一种是单分支格式:

•If条件Then

•[语句]

•EndIf//其中加“[]”部分为可选择部分。

 第二种是双分支格式:

•If 条件 Then

•[语句块1]

•[Else

•语句块2]

•EndIf

 这里是双分支,即如果条件满足,执行语句块1,否则,执行语句块2。

注意:

语句块中的语句不能与其前面的Then在同一行上!

第三种格式:

•If 条件1 Then

•[语句块1]

•[ElseIf条件2Then

•语句块2]

•……

•Elseif条件nThen

•语句块n

•[Else

•语句块]

•EndIf

(2)IIf函数

•VB提供了一种用来执行简单条件判断的函数IIf,它是“If……Then……Else”结构的简单版本,格式如下:

•Result=IIf(条件,为“True”的执行语句,为“False”的执行语句)

•这里的Result是函数的返回值,括号中的三项均不能省略,执行的操作为首先判断条件,当“条件”为真的时候,执行“为“True”的执行语句”,否则执行“为“False”的执行语句”。

•例如有如下判断条件:

•Ifa>8Then

•x=3

•Else

•x=0

•EndIf

•用IIf函数替代,则可简化为:

•x=IIf(a>8,3,0)

•类似于C语言中的条件表达式:

•表达式1?

表达式2:

表达式3

•例:

Max=(a>b)a:

b;

•2. SelectCase…语句

•SelectCase…语句很适合多重条件判断。

它的书写格式为:

•Selectcase测试表达式

•Case 表达式结果1

•[语句块1]

•[Caset 表达式结果2

•语句块2]

•……

•[Caset else

•语句块n]

•EndSelect

•测试表达式既可以是数值表达式,也可以是字符串表达式,通常为变量或常量;每个语句块由一行或多行合法的VisualBasic语句构成;表达式结果1、表达式结果2……被称为域值,它可以是:

表达式[,表达式]……、表达式To表达式或者Is关系运算表达式(运算符可以是:

<,<=,>,>=,<>,=)之一。

例如:

•Case1,3,5,7

•Case1To6

•CaseIs>=a-b

•这三种表现形式均合法,但应该注意表达式结果中的表达式必须与测试表达式的类型一致。

•例:

从键盘上输入学生考试成绩的等级,然后按照考试成绩的等级显式出百分制的分数段,可以用SelectCase…语句来实现:

•SubForm_click()

•DimgradeAsString,Msg

•Msg=”请输入学生的成绩等级:

•grade=InputBox$(Msg)

•IfNotIsNull(grade)Then

•SelectCasegrade

•Case“A”

•Msg=”85~100”

•Case“B”

•Msg=“70~84”

•Case“C”

•Msg=“60~69”

•Case“D”

•Msg=“<60”

•CaseElse

•Msg=“error!

•EndSelect

•EndIf

•MsgBoxMsg

•EndSub

•6、循环结构:

•1.For…Next语句

•语句格式:

•For循环变量=初值To终值[Step步长]

•[语句]

•[ExitFor]’用于在特定条件下退出循环

•[语句]

•Next[计数器]

•其中:

•①循环变量:

数值型变量,用于统计循环次数的变量。

•②初值:

数值型变量,用于设置循环变量的初始值。

•③终值:

数值型变量,用于设置循环变量的终结值。

•④步长:

数值型变量,用于决定每次循环变量的变化值。

可为正值亦可为负值,默认为1。

•这里遵循:

“先检查、后执行”的原则,循环次数由初值、终值和步长决定;

•For语句和Next语句必须成对出现,且For语句必须在Next语句之前;

•For-Next循环是可以嵌套的,且嵌套层数没有限制,但每个循环必须有唯一的一个变量名作为循环变量,内层循环的Next语句必须位于外层循环的Next语句之前,不可相互交叉;

•当内循环与外循环有相同的终值时,可以共用一个Next语句,但不能省略变量名;

•循环控制值既可以是整型量或单精度数,也可以是双精度数。

•例4:

设计一个窗体单击事件过程,要求从

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

当前位置:首页 > 表格模板 > 合同协议

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

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