第2章VB语言基础学习目标通过学习本章,要熟练掌握常用的数据类型、表达式和函数,熟练掌握各种语法书写细节。学习重点1)各种数据类型的常量和变量;2)表达式的书写;3)常用内部函数的使用方法。学习难点常用的内部函数的书写和使用。2.1编码规则2.2数据类型2.3变量、常量和函数2.4运算符和表达式主要内容例2.1计算S=1+2+3+….+100•DimSAsInteger,iAsInteger•S=0:i=1•Re:Ifi=100Then•S=S+i•i=i+1•GoToRe•Endif•Print“S=”;S•VB代码中不区分大小写–VB对用户的程序进行自动转换,对于关键字,自动将其单词的第一个字母转换成大写,如:DimAsIntegerIfThen等–对于用户自定义的变量名,过程名以第一次定义的大小写为准•语句书写自由–同一行可以写多条语句,用“:”分开–一条语句可以分成若干行,行末加续行符(空格加下划线)•注释有利于程序的维护和调试–以Rem或英文单引号“’”开头•保留行号与标号一.数值数据类型二.字符串数据类型(String)三.逻辑数据类型(Boolean)四.日期数据类型(date)五.对象数据类型(Object)六.变体数据类型(Variant)2.2标准数据类型表2.1VB的基本数据类型1.Integer和Long:整型和长整型。Integer型:占2个字节,类型符:%,表示形式为:n[%]。表示范围:-32768~32767如:123、-123、123%等都可以表示为整型。Long型:占4个字节,类型符:&,表示形式为:n&。如:123&、-123&、-1234567&都表示是长整型。一.★数值数据类型Integer、Long、Single、Double、Currency和Byte型2.Single和Double:单精度和双精度型,表示浮点实数。Single:占4个字节,精度7位,类型符:!;表示形式有多种。有:±n.m、n!、nE±m、±n.mE±k如:123.45、123.45!、0.12345E+3Double:占8个字节,精度16位,类型符:#;表示形式只要在数字后面用“#”代替“!”,对指数形式用“D”代替“E”或指数形式后加“#”即可。如:123.45#、0.12345D+3、0.12345E+3#3.Currency:货币型(占8个字节,类型符:@)表示定点实数和整数,最多保留小数点右边4位和小数点左边15位,用于货币计算。表示形式是在数字后加“@”。如:123.45@、1234@。4.Byte:字节型(无类型符)占1个字节,取值范围00—FF,即0---255,一般用于表示二进制数。•如果一个变量存储的是整数,则声明它为Integer或Long。整数运算速度快,精度且占用空间较小,但表示数的范围也小。•如果变量包含小数,则声明为Single、Double或Currency型。Single和Double采用浮点数表示,范围较大,但存储的数据为近似值,单精度型精确到7位,双精度精确到16位;Currency型采用定点数表示,随范围小,(15位整数,4位小数),但存储的数据精确,适合于金融计算•如果变量包含二进制数据,则可声明为Byte型•注:对数据采用哪种数据类型,可从以下三个因素考虑:计算机内存占用量;程序执行速度;计算的精度。String:$用引号括起来的一串字符即为字符串常量,最大可存放0---65535个字符。如:“12345”、“abcde123”、”程序设计”等都是合法的字符字符串有定长字符串和可变长字符串。定长字符串可用语法“String*Size”表示。注意:(1)“”表示一个空字符串,而“”表示一个有一个空格的字符串。(2)若字符串中有双引号,如:要表示字符串:123“abc,则用连续两个双引号表示。即为:“123”“abc”二.★字符串数据类型•数值字符串和数值型变量可以互相赋值。•例如:•DimxAsSingle,yASString•x=123.456:y=x'y的值为“123.456”•x=Int(y)'x的值为123Boolean:占2个字节。用于逻辑判断,只有TRUE和FALSE两个值。1)当逻辑数据转化成整型数据时TRUE转换为-1FALSE转换为0。2)而其它类型数据转换成逻辑数据时非0数据转换为TRUE0转换为FALSE。三.逻辑数据类型(无类型符)Date(或time):占8个字节表示的日期范围为:公元100年1月1日--9999年12月31日。时间范围为:0:00:00----23:59:59。日期型数据的表示方法:只要按日期/时间格式书写的字符用定界符号“#”将其括起来即可如:#January1,2000##10/12/2000##1998-5-1212:30:30PM#四.日期(时间)数据类型(无类型符)•可对日期型数据作算术运算。•整数表示距1899年12月30日的天数•小数表示距午夜的时间(中午为0.5)•加减整数为加减天数,加减小数为加减时间。•例如:•PrivateSubForm_Click()•DimaAsDate,bAsDate•a=1.5:b=-1•Printa,b•EndSub•运行后单击窗体,显示结果为:•1899-12-3112:00:001899-12-29Object:占4个字节,这4个字节是用来存放具体对象的起始地址的。该地址可以引用程序中的对象。假如一个变量被声明为Object型,再把某个对象的地址赋给它,就可以用此变量去引用程序中的任何实际对象。五.对象数据类型(无类型符)Variant:变体型变量可以存储任何类型(VB内部)的数据。变体型使用方便、操作简便。●不论哪种类型的数据均可向变体型变量赋值而不必作任何转换,VB自动完成任何必要的转换。例如:Dimx‘不指定数据类型为变体型x=“123”:x=x-23‘x的值为100x=“ABC”&x‘x的值为“ABC100”●如果需要了解到底是哪一种数据类型时,可以用函数VarType()进行检测,根据它的返回值可确定是何数据类型。六.变体数据类型(无类型符)表2-2VarType的数据类型•一、利用立即窗口检测返回值–PrintVarType(“abc”)返回值8–PrintTypeName(“abc”)返回值string•二、在代码窗口•⑴Debug.PrintVarType(a)•则在立即窗口显示返回值•⑵Print.VarType(a)则在窗体显示返回值•创建自定义数据类型用Type语句实现,必须放在模块的声明部分,语法格式为:•[Private/Public]Type类型名•元素名[(下标)]As数据类型•……•元素名[(下标)]As数据类型•EndType•声明一个变量为自定义类型后,引用该变量中元素的格式为:•变量名.元素名自定义数据类型•例如为了描述通迅录(包括姓名、地址、电话号码)中的数据,可定义自定义类型:•PrivateTypeAddress_Book•NameAsString*15•AddressAsString*30•PhoneAsLong•EndType•然后声明Address_Book类型的变量,并赋值:•DimRecordAsAddress_Book•Record.Name=ZhangSan•Record.Address=Baoding•Record.Phone=2091530