第二章VB语言基础2.1数据类型2.2变量与常量2.3运算符和表达式2.4常用函数2.5编码规则2.6常见错误2.1基本数据类型VB支持的数字数据类型IntegerLongSingleDoubleCurrencyByte数据类型String数据类型Boolean数据类型Date数据类型Varient变体数据类型数据类型关键字类型符占用字节数范围字节型Byte无10~28-1(0~255)逻辑型Boolean无2True与False整型Integer%2-215~215-1(-32768~32767)长整型Long&4-231~231-1单精度型Single!4±1.401298E-45~±3.402823E38双精度型Double#8±4.941D-324~1.79D308货币型Currency@8小数点左边15位,右边4位日期型Date(time)无81/1/100~12/31/9999字符型String$与字符长度有关0~65535个字符对象型Object无4任何对象引用变体型Variant无根据需要分配整数类型数据整数类型的数据是指不带小数点和指数符号的数整型:用关键字Integer或%表示每个整型数占2个字节存储空间十进制整型数由数字0~9和正、负号组成取值范围为-32768~32767。例如34、0、-345、94%长整形:Long或&表示、4个字节存储空间取值范围为-2147483648~2147483647例如32768、0&、-3457699、9&八进制、十六进制八进制整型数由数字0~7和正、负号组成,前面冠以&或&O,其取值范围为&0~&177777。例如:&257、&O366都是八进制整型数。十六进制整型数由数字0~9及A~F(或a~f)组成,前面冠以&H或&h,其取值范围为&H0~&HFFFF。例如:&H78、&H6F都是十六进制整型数。实数类型实数类型的数据是带小数部分的数。例如,3.23、-19.86等。按存储格式的不同,又分为浮点数和定点数。定点数即一般实数表示,而浮点数采用IEEE(InstituteofElectricalandEectronicsEngineers,电气及电子工程师学会)格式,由尾数及指数两部分组成:[+|-]XXX[.X…X]{E|D}[+|-]XXX尾数部分指数部分实数类型单精度浮点型(!,4个字节)7位有效数字(10进制)。其负数的取值范围为-3.402823×1038~-1.401298×10-45,而正数的取值范围为1.401298×10-45~3.402823×1038。例如:-0.98,123.45E3都是单精度数,其中123.45是尾数,E3是指数,相当于数学中的123.45×103。双精度浮点型(#,8个字节)15/16位有效数字。范围-1.79769313486232×10308~-4.94065645841247×10-324,而正数的取值范围为4.94065645841247×10-324~1.79769313486232×10308。例如:-98.789#,123.45678D3是一个双精度数,其中123.45678是尾数,D3是指数,相当于数学中的123.45678×103。字符型数据类型字符型(或称字符串)数据用关键字String或$表示,是一个用双引号括起来的字符序列,包括所有西文字符和汉字。例如:“VisualBasic程序设计”、“456aBc”、“789”注意:在字符型数据中,字母的大小写是有区别的“456aBc”、“456ABC“:不同的字符型数据如果字符型数据中有双引号,可以使用连续的两个双引号表示。字符型数据“456”abc:写成abc123“”表示空字符型数据,“”表示有一个空格的字符型数据最长:大约20亿(231)个字符,界定符变体型数据类型变体型数据用关键字Variant表示,是一种可变的数据类型变量在使用前需要声明类型,如果不声明类型,则默认为Variant类型。要检测变体型变量中所保存的数值类型,可以用函数VarType进行检测,数据其返回值可确定是何数据类型。2.2常量与变量常量:在程序运行中其值不可以改变直接常量各种类型的常数值,其常数值直接反映了其类型,也可以在常数值后紧跟类型说明符说明数据类型12,123,”123asc”,12!符号常量Const常量名[As类型|类型符号]=常数表达式例如:ConstPI=3.1415926535等价于ConstPIAsDouble=3.1415926535注:为使与变量名区分,一般常量名使用大写字母系统常量VisualBasic提供了应用程序和控件的系统定义常数例如:窗口的状态WindowsState属性可取0、1、2三个值,对应正常、最小化、最大化3种不同状态。其符号常量为:vbNormal、vbminimized、vbMaxmized。vbRedvbGreenvbBluevbYellow系统定义常量位于对象库中,可通过“视图|对象浏览器”查看.变量:在程序运行中其存储的值可以改变变量的命名规则1必须以字母或汉字(中文系统中可用)开头,有字母、汉字、数字或下划线组成,长度小于或等于255个字符。2不能使用VB中的关键字。3VB中不区分变量名的字母大小写例如:ABC、abc、AbC等看作相同的变量名。为了便于区分,变量首字母一般用大写字母,其余用小写字母。常量全部用大写字母表示。例2.1哪些是正确的?哪些是错误的?为什么?strMystring、12string、Aname、?asdj、Dim、string、Boolean、Ln_sdu_sd、!sd、y-z、wangpeng、cos使用变量前,一般必须先声明变量名及其类型,以决定系统为它分配的存储单元和运算规则。变量的声明用Dim语句显示声明变量Dim变量名[As类型]例如DimiAsInteger,sumAsSingle等价于:Dimi℅,sum!一条Dim语句可以同时定义多个变量,但每个变量应有类型说明,否则为变体型。例如Dimm,n,jAsInteger,x,yAsSingle创建了变体型变量m、n、x整形变量j和单精度型变量y变量根据不同的类型有不同的默认初值变量类型默认初值数值类型0String“”(空)BooleanFalseObjectNothingDate0/0/0/对于字符型变量,根据其存放的字符串长度是否固定,其定义方法有以下两种:Dim字符串变量名AsString声明可变长字符串变量Dim字符串变量名AsString*字符数声明定长字符串变量例如:声明变量DimS1AsString'声明可变长字符串变量S1DimS2AsString*50'声明定长字符串变量S2在VB中,一个汉字与一个西文字符都算做一个字符变量的隐式声明未进行上述的声明而直接使用,其类型为Variant类型,建议不使用。如果是因为编辑错误系统不光没有提示,反而认为是新定义了一个变量。dimnumasInteger,yasSinglenum=100y=500/mun‘出错(mum是Variant类型,默认值为0)2.3运算符与表达式VB提供了多种操作符:算术运算符字符运算符关系运算符逻辑运算符在VB程序中编写表达式和运算过程时,可以使用这些操作符1.算术运算符优先级运算符运算例子结果1^乘方3^292-取负-3-33*乘法3*5153/浮点除法10/33.3333334\整数除法10\335Mod取模10Mod316+加法2+356-减法2-3-1例:5+10mod10\9/3+2^22.字符串运算符字符串运算符有两个:&、+它们的作用都是将两个字符串连接起来,合并成一个新的字符串。Hello&World结果为HelloWorld“ABC+DEF结果为ABCDEF注意“&”、“+”两个运算符的区别Check&123结果为Check123“123&456结果为123456123&456结果为123456123+456结果为579123+456结果为579123+456结果为123456Check+123错误变量与运算符“&”之间应加一个空格?3.关系运算符将两个操作数进行大小比较,结果为逻辑量。注意:关系成立,返回值为true,否则返回false。在VB中,true用-1表示,false用0表示。进行关系运算的操作数包括数值型和字符型,运算规则:1)数值型直接比较大小:56782)字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止。3)关系运算符的优先级相同。例:ABCDEABRA结果为False运算符运算例子结果=等于2=3False不等于23True大于23False小于23True=大于等于2=3False=小于等于2=3TrueLike字符串匹配ABCDEFGLike*DE*TrueIs比较IS0由当前对象当前值决定4.逻辑运算符优先级运算符运算说明例子结果1Not非当操作数为假时,结果为真Not(38)True2And与当两个操作数均为真时,结果才为真(38)And(56)False3Or或当两个操作数均为假时,结果才为假(38)Or(56)True4Xor异或当两个操作数同时为真或同时为假时,结果为假(38)Xor(56)True5Eqv等价当两个操作数同时为真或同时为假时,结果为真(38)Eqv(56)False6Imp蕴含当第一个操作数为真,且第二个操作数为假时,结果为假(38)Imp(56)True逻辑运算符将操作数进行逻辑运算,结果是逻辑值(TrueFalse)例1数学表达式:10≤x20VB表达式:x=10Andx20例2要获得奖学金必须满足的条件是:高数、英语和哲学三门课程必须平均分大于等于90,且各单课成绩要大于等于85分,则逻辑表达式为平均分=90and英语=85and高数=85and哲学=85例3若获奖条件变为任一课程分数大于等于95分即可,则逻辑表达式为:英语=95or高数=95or哲学=95表达式1.组成变量、常量、函数、运算符和圆括号2.书写规则(1)运算符不能相邻。例a**b是错误的。(2)乘号不能省略。例x乘以y应写成:x*y(3)括号必须成对出现,均使用圆括号。(4)表达式从左到右在同一基准上书写,无高低、大小。示例:3(X2+Y3)(XY)4用VB语言写。3*(x^2+y^3)*(x*y)^43.不同数据类型的转换运算结果的数据类型有一个趋势:IntegerLongSingleDoubleCurrency注意:当Long型数据与Single型数据运算时,结果为Double型数据。4.优先级除了关系运算符之外,同种运算符有优先级的顺序,不同的运算符之间按照下面的顺序:算术运算符关系运算符逻辑运算对于多种运算符并存的表达式,可以增加圆括号,改变优先级,因它优先级最高。例1用人单位招聘秘书:年龄小于40岁,女性,学历专科或本科年龄40And性别=“女”And(学历=“专科”Or学历=“本科”)AndAndOr例2算术表达式转换成VB表达式sqr((3*x+y)-z)/(x*y)^44)()3(xyzyx2.4常用内部函数VisualBasic中的内部函数是VB系统为实现一些特定功能而设置的内部程序,这些函数可以带有零个或多个自变量,这些自变量称为“参数”。函数对这些参数进行计算,返回一个结果值,称为函数值。函数的一般调用格式为:函数名([参数列表])其中,参数列表列出的参数可以是常量、变量或表达式。若有多个参数,参数之间以逗号分隔,方括号表示可无参数。1数学函数三角函数中,以弧度表示随机函数:Rnd[()]Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数.每次运行时,要产生不同序列的随机数,执行Random