VB语法基础重要.ppt

上传人:小飞机 文档编号:6522743 上传时间:2023-11-08 格式:PPT 页数:44 大小:310.50KB
返回 下载 相关 举报
VB语法基础重要.ppt_第1页
第1页 / 共44页
VB语法基础重要.ppt_第2页
第2页 / 共44页
VB语法基础重要.ppt_第3页
第3页 / 共44页
VB语法基础重要.ppt_第4页
第4页 / 共44页
VB语法基础重要.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《VB语法基础重要.ppt》由会员分享,可在线阅读,更多相关《VB语法基础重要.ppt(44页珍藏版)》请在三一办公上搜索。

1、第3章 VB语法基础,本章内容及要求:1.熟悉VB程序中代码和语句书写规则;2.掌握VB的数据类型;3.掌握VB的 运算符和表达式的使用;,本章重点:变量和常量的定义及使用、运算符和表达 式的使用。,本章难点:数据类型。,3.1 VB语言字符集及编码规则,3.1.1 VB的字符集,l字母:大写英文字母AZ;小写英文字母az。l 数字:0一9;l 专用字符:共27个,3.1.2 编码规则与约定,(一)编码规则1VB代码中不区分字母的大小写。2同一行上可以书写多条语句,但语句间要用冒号“:”分隔。3若一个语句行不能写下全部语句,或在特别需要时,可以换行。换行时需在本行后加入续行符,1个空格加下划线

2、“_”。,4一行最多允许255个字符。5注释以Rem开头,也可以使用单引号“”,注释内容可直接出现在语句的后面。6在程序转向时需用到标号,标号是以字母开始而以冒号结束的字符串。,(二)约定,1为了提高程序的可读性,对于VB中的关键字其首字母大写,其余字母小写 2.注释有利于程序的维护和调试 Rem开始 或 单撇。例如:This is a VB REM This is a VB 在6.0中新增了“块注释/取消块注释”(视图/工具栏/编辑),3通常不使用行号4对象名命名约定:每个对象的名字由3个小写字母组成的前缀(指明对象的类型)和表示该对象作用的缩写字母组成。如命令按钮前缀:cmd,3.2 数据

3、类型,3.2.1 标准数据类型,3.2.2 自定义类型(第五章数组详细讲解)补充到P55,在模块级别中使用,用于定义包含一个或多个元素的用户自定义的数据类型。使用形式:Type 自定义类型名 元素名(下标)As 类型名 元素名(下标)As 类型名.End Type 见下例,Type Student Xh As Sting Xm As String Xb As String Nl As Integer Score As Single End Type,例如:对于一个学生的“学号”、“姓名”、“性别”、“年龄”、“入学成绩”等数据,为了处理数据的方便,常常需要把这些数据定义成一个新的数据类型(如S

4、tudent类型)。,3.3数据类型,1、数值型(1)整型(Integer):表示-32768至32767之间的整数 例如:10 110 20(2)长整型(Long):表示-2,147,483,648至2,147,483,647之间的整数 例如:长整型常数的书写:23&(3)单精度(Single):有效数为7位 表示-3.37E+38至3.37E+38之间的实数 如123.45、0.125E+3(4)双精度(Double):有效数为15位 如124.45#0.125D+3(5)currency 定点实数或整数,最多保留小数点右边4位和左边15位,2、日期型 日期(Date)型数据按8字节的浮点

5、数来存储,表示日期范围从公元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的整数表示该日期以前的日期。,3、逻辑(Boolean)型 只有两个值True,或False。将逻辑数据转换成整型时:True

6、为-1,False为0;其它数据转换成逻辑数据时:非0为True,0为False。4、字符型在VB中字符串常量是用双引号“”括起的一串字符,例如ABC,abcdefg,123,0,VB程序设计等。说明:(1)字符串中的字符可以是所有西文字符和汉字、标点符号等;(2)表示空字符串,而 表示有一个空格的字符串;(3)若字符串中有双引号,例如ABDXYZ,则用连续两个双引号表示,即:ABDXYZ“,3.3.1 符号常量 在程序中,某个常量多次被使用,则可以使用一个符号来代替该常量,这样不仅在书写上方便,而且有效地改进了程序的可读性和可维护性。VB中使用关键字Const 声明符号常量。其格式如下:Co

7、nst 常量名 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进制数来设置要

8、直观得多。,一.变量和常量的命名规则 1.以字母或汉字开头,后可跟字母、数字或下划线组成,长度小于等于40个字符;2.不能使用VB中的关键字;3.VB中不区分变量名的大小写.4.为了增加程序的可读性,可在变量名前加一个缩写的前缀来表明该变量的数据类型。例如:strAbc,(字符串变量)iCount,(整型变量)dblx,(双精度变量)sYz(单精度变量),3.3.2 变 量,变量的实质,二.变量声明 1.用Dim语句显式声明变量 形式:Dim 变量名 AS 类型 Dim 变量名类型符 例 Dim iCount As integer,sum As single 等价于 Dim iCount%,s

9、um!2.隐式声明 Visual Basic允许用户在编写应用程序时,不声明变量而直接使用,系统临时为新变量分配存储空间并使用,这就是隐式声明。所有隐式声明的变量都是Variant数据类型。Visual Basic根据程序中赋予变量的值来自动调整变量的类型。例如:,下面是一个很简单的程序,其使用的变量a,b,Sum都没有事先定义。Private Sub Form_Click()Sum=0a=10:b=20Sum=a+bPrint Sum=;SumEnd Sub,3强制显式声明Option Explicit语句,良好的编程习惯都应该是“先声明变量,后使用变量”,这样做可以提高程序的效率,同时也使

10、程序易于调试。Visual Basic 中可以强制显式声明,可以在窗体模块、标准模块和类模块的通用声明段中加入语句:Option Explicit,3.4 变量的作用域,概述:,在VB中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为:局部变量(过程级变量)窗体/模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用)全局级变量(公有的模块级变量)。,3.4.1 过程级变量局部变量,局部变量:在过程内用声明的变量,只能在本过程中使用。,在过程内部使用 Dim 或者 Static 关键字来声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别

11、的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互不影响。,例:Private Sub Form_Load()Dim n%n=10End SubPrivate Sub Form_Click()Print n=;nEnd Sub,程序运行后单击窗体,其输出结果是什么?,3.4.2 窗体/模块级变量,窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。但其他模块却不能访问该变量。例如:在“通用声明”段声明如下变量Private s As StringDim a As Integer,b As Single,例:Dim n%

12、Private Sub Form_Load()n=10End SubPrivate Sub Form_Click()Print n=;nEnd Sub,程序运行后单击窗体,其输出结果是什么?,3.4.3 全局变量,全局变量也称公有的模块级变量,在窗体模块或标准模块的顶部的“通用”声明段用Public关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。例如:Public a As Integer,b As single,3种变量声明及使用规则如下表:,Public Temp As Integer 定义全局变量Private Sub Form_Load()Temp=1 将

13、全局变量Temp 的值设置成 1End SubPrivate Sub Command1_Click()Dim Temp As Integer 定义局部变量Temp=2 将局部变量Temp 的值设置成 2 Print temp=;Temp End SubPrivate Sub Command2_Click()Print temp=;Temp End Sub,3.4.4窗体/模块级变量 与全局变量应用举例,在form2中的窗体单击事件中显示Print temp=;Form1.Temp 但是当把temp在通用中定义:Dim Temp As Integer 定义窗体变量Form2中将不能显示form1

14、.temp,3.4.5 静态变量,除作用域之外,变量还有存活期,在这一期间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和全局变量的值。但是,对于Dim声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。,概念,局部变量的存活期由其定义的关键词来决定。,局部变量声明:Dim声明:随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。Static声明,每次调用过程,变量保持上次调用结束时的值。声明形式:Static 变量名 AS 类型

15、Static Function 函数过程名(参数列表)As 类型 Static Sub 子过程名(参数列表)注意:过程名前加Static,表示该过程内的局部变量都是静态变量。,例5.2 有一个人编了下面一段程序,想用变量n记录单击窗体的次数。Private Sub Form_Click()Dim n As Integer n=n+1 Print 已单击次数:;n&次End Sub,分析程序运行后多次单击窗体的输出结果:,要记录单击窗体次数,如何实现?并比较使用模块变量和静态变量的差别。,3.5 运算符和表达式,一.运算符 5.5.1.算术运算符(ia=3)例:-5+10 mod 10 9/3+

16、2 2 结果是:,0,说明:计算时自动调整精度 5.5.2.字符串运算符与字符串表达式 字符串运算符有:、+。功能是字符串连接例如:ABCD+EFGHI 结果为:ABCDEFGHI“VB”&“程序设计教程”结果为:VB程序设计教程说明:当连接符两旁的操作量都为字符串时,上述两个连接符等价。它们区别是:+(连接运算):两个操作数均应为字符串类型;&(连接运算):两个操作数既可为字符型也可为数值型,当是数值型时,系统自动先将其转换为数字字符,然后进行连接操作。,例:100+123 结果为 223100+123 结果为 100123 Abc+123 出错 100&123 结果为 100123 100

17、&123 结果为 100123 Abc&123 结果为 Abc123 Abc&123 结果为 Abc123,注意:使用运算符“&”时,变量与运算符“&”之间应加一个空格。这是因为符号“&”还是长整型的类型定义符,如果变量与符号“&”接在一起,VB系统先把它作为类型定义符处理,因而就会出现语法错误。,3.5.3 关系运算符与关系表达式,关系运算符都是双目运算,是用来比较两个运算量之间的关系,关系表达式的运算结果为逻辑量。若关系成立,结果为True,若关系不成立,结果为False。VB中的关系运算符如下表所示。,关系运算的规则如下:(1)当两个操作式均为数值型,按数值大小比较。(2)字符串比较,则

18、按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。例:ABCDE ABRA 结果为 False,(3)数值型与可转换为数值型的数据比较,如:29189,按数值比较,结果为False。(4)数值型与不能转换成数值型的字符型比较,如:77 sdcd,不能比较,系统出错。(5)“Like”运算符是VB6.0新增加的。其使用格式为:str1 Like str2,3.5.4 逻辑运算符与逻辑表达式 Not 逻辑非为单目运算符(要求一个操作数),其它为双目运算符。条件表达式1 And 条件表达式2 条件表达式均为T 结果为T 条件表达式1 Or 条件表达式2 条件表达式有一个T 结果为T,

19、说明:(1)逻辑运算符的优先级不相同,Not(逻辑非)最高,但它低于关系运算,Imp(逻辑蕴含)最低。(2)VB中常用的逻辑运算符是Not、And和Or。它们用于将多个关系表达式进行逻辑判断。例如,数学上表示某个数在某个区域时用表达式:10X=10 And X20(3)参与逻辑运算的量一般都应是逻辑型数据,如果参与逻辑运算的两操作数是数值量,则以数值的二进制值逐位进行逻辑运算(0当False,1当True)。关系表达式与逻辑表达式常常用在条件语句与循环语句中,作为条件控制程序的流程走向。,3.5.5 日期型表达式日期型数据是一种特殊的数值型数据,只能有下面3种情况:1一个日期型数据可以相减:D

20、ateB-DateA结果是一个数值型整数(两个日期相差的天数)。例如:#05/08/2002#-#05/01/2002#其结果为数值:72一个日期型数据(DateA)与一数值数据(N)可作加法运算:DateA+N其结果仍是一个日期型数据。例如:#05/01/2002#+7 其结果为日期型数据:#05/08/2002#3一个日期型数据(DateA)与一数值数据(N)可作减法运算:DateA-N其结果仍是一个日期型数据。例如:#05/08/2002#-7其结果为日期型数据:#05/01/2002#,3.5.6 运算符的执行顺序,表达式中出现了多种不同类型的运算符时,其运算符优先级如下:算术运算符=

21、字符运算符关系运算符逻辑运算,说明:1当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。2可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。对于多重括号,总是由内到外。,.表达式的书写中需注意的问题(1)运算符不能相邻。例a+-b是错误的。(2)乘号不能省略。例x 乘以y 应写成:x*y(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准并排书写,不能出现上下标(5)要注意各种运算符的优先级别,为保持运算顺序,在写表达式时需要适当添加

22、括号(),若用到库函数必须按库函要求书写。如:(b-sqr(b*b-4*a*c)/(2*a)(a+b)/(a-b),常用内部函数内部函数就是系统中已有的具有某个特定功能的一组程序代码,当用户需要时,只需用将函数直接象变量一样作为表达式的一个组成部分。函数的一般格式为:()数学函数Abs(x):返回数值表达式x的绝对值Sqr(x):返回数值表达式x的平方根Sgn(x):返回数值表达式x的符号值,x0,则其符号值为1,x0,则其符号值为1 x=0,则其符号值为0Int(x):返回不大于x的整数部分如:Int(-14.4)的值为15Cint(x):返回x的整数部分,小数部分四舍五入如:Cint(-1

23、4.4)的值为14Fix(x):返回x的整数部分如:Int(-14.6)的值为14Rnd(x):返回一个介于0,1)之间的随机数,若x取0,则每次得到的随机数相同字符串函数Ltrim(C)、Rtrim(C)及Trim(C):清除字符串表达式C的首、尾或首尾的空格Len(C):返回字符串表达式C的字符个数如:Len(张志明)的值为3Left(C,n)、Right(C,n):取字符串表达式C的左或右子字符串Mid(C,n,m):从字符串表达式C的第n个字符开始取m个字符Instr(n1,C1,C2,N2):从字符串表达式C1的第n1个字符开始查找子字符串C2的起始位置,若查找失败,则返回值0;若有

24、N1且N2取1,则表示查找时不区分大小写,例:Instr(abcdeABCDEabcd,AB)的值为:,6,又:Instr(1,abcdeABCDEabcd,AB,1)值为:,1,例:如何产生一个200,300)之间随机整数,一个200,300之间随机整数,Int(300-200)*Rnd+200),Int(301-200)*Rnd+200),日期时间函数(P67)Date、Time 分别提取系统日期与时间Now:提取系统日期与时间Weekday(d):返回指定日期型数据d的星期几不大于x的整数部分,例:Weekday(#3/19/2007#)的值为:,2,则Weekday(date)的值为:

25、,转换函数Lcase(S):大写换小写Ucase(S):小写换大写Asc(S):返回字符串表达式S首字符ASCII码值Chr(n):返回ASCII码值为n的字符Val(S):得到以数值形式开头的字符串表达式S的数值 若遇到非数值形式的字符,则取值结束 若字符串表达式不以数值形式开头,则得到数值0Str(n):以字符串的形式得到数值表达式n的值 若n的值为正数或0,则字符串首有一个空格 若n的值为纯小数,则字符串中省略整数部分的0,例:Val(123120)的值为:,123,例:Val(张志明)的值为:,0,例:Str(123.45)的值为:,123.45 该字符串的长度为7,例:Str(0.1

26、23)的值为:,.123 该字符串的长度为5,例:Str(-0.123)的值为:,-.123 该字符串的长度为5,键盘输入函数格式:InputBox(,)功能:显示一个输入对话框,让用户在其中的文本框内输入一串字符,并得到该字符串可选项的作用:提示信息:输入对话框中的提示文字标题:输入对话框的标题栏文字,若缺省则标题为工程名默认值:输入对话框中文本框中的默认字符串消息框函数格式:MsgBox(,)功能:显示一个具有若干个按钮的提示信息对话框,并根据用户单击不同的按钮得到不同的双精度值可选项“按钮数及类型值n”的作用:,对于下表的说明:表中的参数均为VB的系统符号常量,函数MsgBox中的n既可

27、以直接用数值写亦可用这些系统符号常量表示;n的取值分四个部分,它们对应四个不同方面的功能,依次为:按钮数及按钮名称、是否显示图标及图标的类型、指定第几个为默认按钮和消息框的模式 n的值其实是一个有16个二进制位的整数:,每一个区域中二进制值不同取值的组合决定了该消息框的不同特征,所以若想显示的消息框有“是”“否”及“取消”按钮、且消息框中显示“禁止”图标、再同时按钮“否”为默认按钮,则该函数可为:MsgBox(”这是一个消息框!”,,”消息框!”),vbYesNoCancel+vbCritical+vbDefaultButton2,3+16+256,275,InputBox函数举例Dim st

28、rName As String*40,strS1 As String*40strS1=请输入你的姓名+Chr(13)+Chr(10)+然后单击确定strName=InputBox(strS1,输入框,王晓明),缺省值,标题,提示,MsgBox函数举例Sname=张三:I=52Msg=共有选票&I&张&Chr(13)&Chr(10)&_恭喜&Sname&当选!answer=MsgBox(Msg,选举结果),标题,提示,续行标志,函数练习,Int(Rnd*100),int(-12.3),Cint(-12.8),fix(-12.8),Int(-12.8)sgn(-12)、sgn(12)、sgn(0)InStr(1,Visual basic for windows,basic)(默认值为0)InStr(1,Visual basic for windows,BASIC,1)(不区分大小写)LCase(Chr(Asc(A)+1)、UCase(Chr(Asc(y)+1)Len(VB可视化开发环境)mid(我喜欢vb“,2,3)weekday(#3/21/2007#)Asc(A)+Len(ABCDE)+mid(12345,2,2)Val(123.45abc)+345Split(“123,er,ert”,”,”)DateDiff(yyyy,#12/1/2010#,Now)ww,d,y,h,q,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号