3.1VisualBasic程序的语句和编码规则3.2数据类型3.3变量与常量3.4运算符和表达式3.5常用内部函数第3章VisualBasic程序设计语言基础3.1VisualBasic程序的语句和编码规则3.1.1编码规则3.1.2程序语句返回退出3.1.1编码规则•(1)VB代码不区分字符的大小写,但关键字将会自动转换为大写字母开头,后续字母为小写字母。•(2)一行可以书写多条语句,各语句之间用冒号“:”分隔。•(3)一行书写不完的语句,可以在该行后加上续行符(由空格+下划线_组成),然后换行书写。•(4)一行最多为255个字符,一条语句最多含1023个字符。•(6)用户自定义的变量、过程名等,VB以第一次定义为准,其后的输入自动转换。•(7)程序中可以使用标号用于程序的转向,标号为以字母开头、冒号结尾的字符串。•(8)注释行以Rem或撇号“'”开头,但是只有用撇号引导的注释可以出现在语句之后。可以使用“编辑”工具栏中的“设置注释块”命令将选定的若干行语句或文字设置为注释项,也可以使用“解除注释块”命令将选定的若干行解除注释。•(9)对象名命名约定:每个对象名由三个小写字母组成前缀和表示该对象的作用的缩写字母组成,前缀表明对象的类型,如cmdExit为一个退出按钮,cmdEnter为一个确认命令按钮。3.1.2程序语句1.赋值语句2.注释语句3.暂停语句4.Exit语句5.结束语句6.With语句1.赋值语句赋值语句又称为Let语句,其作用是把指定的值赋给某个变量或某个带有属性的对象。一般格式为:[Let]目标操作符=源操作符说明:(1)“=”为赋值号,不等于数学意义上的等号。(2)赋值语句具有赋值和计算的双重功能,即首先计算赋值号右边的源操作符的值,然后赋给左边的目标操作符。(3)目标操作符和源操作符应具有相同的数据类型。但不管表达式是什么类型,都可以赋给一个Variant变量。(4)如果复合语句(一行有多个语句)含有注释语句,则注释语句必定是最后一个语句。复合语句的各语句可以是任何合法的VB语句,但各语句之间必须用冒号隔开。2.注释语句注释语句的格式:Rem注释内容或'注释内容例如:'PleaseInputYourname!Rem请输入你的姓名!注释语句是非执行语句,不会被解释和编译。注释语句不能放在续行符的后面。3.暂停语句暂停语句用来暂停程序的执行,类似于执行“运行”菜单中的“中断”命令。暂停语句的格式为:Stop作用:把解释程序设置为中断模式,在程序调试阶段对程序进行检查,执行Stop语句时,将打开立即窗口。在可执行文件中执行Stop语句时,将关闭所有文件。在程序调试结束后,生成可执行语句之前,应删除程序代码中所有Stop语句。4.Exit语句Exit语句用于退出某种控制结构或过程,如:ExitFor、ExitDo、ExitSub、ExitFunction等。5.结束语句结束语句用来正常地结束一个程序的执行。结束语句的格式为:End如下面的程序:PrivateSubTimer1_Timer()EndEndSub6.With语句With语句的语法为:With对象[语句块]EndWithWith语句可以对某个对象执行一系列的语句,而不用重复指出对象的名称。例如,要改变MyLabel标签对象的多个属性,可以在MyLabel控制结构中加上属性的赋值语句,这时候只是引用对象一次而不是在每个属性赋值时都要引用它。•WithMyLabel•.Height=2000•.Width=2000•.Caption=ThisisMyLabel•EndWith例如:3.2数据类型•表3-1VisualBasic的标准数据类型数据类型关键字类型符前缀所占字节数范围字节型Byte无byt10~255逻辑型Boolean无bln2True与False整型Integer%int2-32768~32767长整型Long&lng4-2147483648~2147483647单精度型Single!sng4负数:-3.402823E38~-1.401298E-45正数:1.401298E-45~3.402823E38双精度型Double#dbl8负数:-1.79769313486232D308~-4.94065645841247D-324正数:4.94065645841247D-324~1.79769313486232D308货币型Currency@cur8-922337203685477.5808~922337203685477.5907日期型Date(time)无dtm801,01,100~12,31,9999字符型String$str与字符串长度有关0~65535个字符对象型Objiect无obj4任何对象引用变体型Variant无vnt根据分配确定3.2.1基本数据类型3.2.2用户自定义数据类型3.2.3枚举类型3.2.1基本数据类型1.数值型数据(Numeric)2.日期型数据(Date)3.逻辑型数据(Boolean)4.字符型数据(string)5.对象(Object)类型的数据6.变体(Variant)数据类型1.数值型数据(Numeric)数值型数据一般分为整型数和浮点数两类。整型数分为整数(Integer)和长整数(Long),浮点数分为单精度浮点数(Single)和双精度浮点数(Double)。有时也把货币型数据(Currency)和字节型数据(Byte)划归数值型数据。1)整数(Integer)整数是不带小数点和指数符号的数,在机器内部以2字节二进制码形式表示。VB中用±n[%]来表示整数,其中%为整数的类型符,可以省略。如-123%、123%都表示整数。2)长整数(Long)整数的最大值为32767,大于此数,程序运行时就会因为溢出产生中断。此时可使用长整数。长整数用4字节二进制数存储,可以表示更大的整数,其取值范围为-2147483648~2147483647。VB中用±n&来表示长整数,其中&为长整数的类型符。如-1234&、987654&都表示长整数。3)浮点数浮点数也称为实型数或实数,由符号、指数和尾数组成,分单精度浮点数(Single)和双精度浮点数(Double),其指数部分分别用“E”(或“e”)和“D”(或“d”)表示。4)货币型(Currency)货币型属于定点实数或整数,用8位字节存储小数点前有15位,小数点后有4位,其余的数字被舍去,其表示形式为在数字后加上“@”。5)字节型(Byte)字节型数据用1个字节的无符号二进制数存储,取值范围为0~255。2.日期型数据(Date)日期型数据按IEEE64位浮点数值存储,表示的日期从公元100年1月1日~9999年12月31日,时间范围为0:00:00~23:59:59。任何在字面上可以被认作日期的文本都可以赋值给日期变量,且日期文字必须用符号“#”括起来,如#January15,2002#,#1985-10-19:45:00PM#都是合法的日期型数据。3.逻辑型数据(Boolean)逻辑型数据只有两个值:真(True)和假(False),用2字节二进制数存储,经常用来表示逻辑判断的结果。当把数值型数据转换为逻辑型数据时,0会转换为Flase,其它非0值转换为True。反之,当把逻辑型数据转换为数值型时,Flase转换为0,True转换为-1。4.字符型数据(string)字符型数据是指一切可打印的字符和字符串,它是用双引号括起来的一串字符。一个西文字符占一个字节,一个汉字或全角字符占两个字节。在VB中有两种类型字符串:变长字符串和定长字符串。变长字符串的长度不确定,可以是0~231个范围内的字符,而定长字符串长度一定,可以是0~231个范围内的字符注意:空字符串用表示,而则表示有一个空格的字符串;另外在字符串中必须用两个连续的双引号来表示字符串有一个双引号。如字符串:abc计算机abc,在VB中表示为abc计算机abc。5.对象(Object)类型的数据对象类型的数据主要是以变量形式存在的,Object变量通过32位(4字节)来存储,该地址可以引用应用程序中的对象。利用Set语句,声明为Object的变量可以被赋值并被任何对象所引用。6.变体(Variant)数据类型Variant数据类型又称为万用数据类型,它是一种特殊的、可以表示所有系统定义类型的数据类型。变体数据类型对数据的处理可以根据上下文的变化而变化,除了定长的string数据及用户自定义的数据类型之外,可以处理任何类型的数据而不必进行数据类型的转换,如上所述的数值型、日期型、对象型、字符型的数据类型。Variant数据类型是VB对所有未定义的变量的缺省数据类型的定义。通过VarType函数可以检测Variant型变量中保存的具体的数据类型。3.2.2用户自定义数据类型除了上述数据类型外,在VB中,用户可以根据需要利用Type语句定义自己的数据类型,其格式如下:Type数据类型名数据类型元素名As类型名……EndType其中,数据类型名为自定义数据类型名,数据类型元素名为自定义数据类型中的一个成员,类型名为上述基本类型名或自定义数据类型名。例题:定义一个有关职工信息的自定义类型:•TypeClient_Record•cltNameasString*16•cltPasswordasString*8•cltDepositasCurrency•EndType•注意:•(1)自定义类型必须在标准模块或窗体模块的声明部分定义,在标准模块中定义时默认为全局变量(Public)。在窗体模块定义时在关键字Type前应加上Private关键字。•(2)自定义类型元素类型如果有字符串,则必须是定长字符串,即应该使用形式为:•strNameAsString*常数•其中“常数”指明定长字符串的长度3.2.3枚举类型当一个变量只有几种可能的值时,可以使用枚举的方法将变量的值一一列出来,变量的值就只限制在列出的几种值中。采用这样的方法定义的变量类型称为枚举类型。枚举可以通过在标准模块或公用类模块中的声明部分用Enum语句声明一个枚举类型来创建。其格式为:[Private|Public]Enum类型名称成员名[=常数表达式]……EndEnum3.3变量与常量3.3.1变量变量:程序运行过程中其值可以改变的量称为变量。变量的形式:属性变量和内存变量。1.变量的命名规则(1)VB变量名只能用字母、数字和下划线组成,变量名中不能包含小数点。(2)VB变量名的第一个字符必须是字母或汉字,最后一个字符可以是类型说明符,且组成变量名的字符数不得超过255个字符。(3)不得使用VB的保留名或保留名后加上类型说明符来作为变量名。(4)变量名在同一个范围内必须是唯一的。(5)为了增加程序的可读性,一般在变量名前加上一个表示该变量数据类型的前缀。2.变量声明(1)用类型说明符表示变量•将类型说明符放在变量名的尾部,可以表示不同的变量,如%表示整型、&表示长整型、!表示单精度型、#表示双精度型、@表示货币型,$表示字符串型。例如:•strName$dblNum%curWage@(2)用声明语句声明变量•用声明语句声明变量的语法为:•[Dim|Private|Static|Public|Redim}变量名1[As类型][,变量名2[As类型2]]…(3)隐式声明与用OptionExplicit语句强制显式声明变量在默认状态下,VB中可以不进行变量声明,此时变量类型默认为变体类型,称为隐式声明,但是这样做可能由于变量名的误写而产生不良后果。3.Variant数据类型Variant数据类型是所有没被显式声明为其他类型变量的数据类型。(1)用VarType函数判断Variant型变量中的数据类型(2)Variant变量对数值的处理(3)Variant变量中的Empty值与Null值4.关于变量声明的说明(1)没有被显示声明的变量都隐含为变体变量。(2)类型说明符的优先级高于Deftype语句,且用类型说明符声明的变量在使用时