资源描述
201420144.1 数据类型4.2 常量和变量4.3 函数4.4 运算符与表达式4.1 数据类型 数据是程序处理的对象。 数据类型确定了数据如何存储,即所占存储单元的大小和存储格式。 对不同类型的数据有不同的存储形式、允许的运算方式,具有不同的取值范围。 在程序设计中,要随时注意所用数据的类型。VB的数据类型 VB的数据类型有系统定义和自定义两种, 系统定义的数据类型称为标准类型,也称基本数据类型。 自定义数据类型是由若干标准类型组合成的某种结构。1、基本数据类型 数据类型具有数据类型具有3个要素:个要素:名称名称:如:如Single表示单精度数据类型;表示单精度数据类型;占内存的大小占内存的大小:如一个:如一个Single类型的数占类型的数占4个个B ;类型声明符类型声明符:如:如Single类型的类型声明符为类型的类型声明符为!数据类型数据类型占内存大小占内存大小数据有效范围数据有效范围类型声明符类型声明符Integer(Integer(整型整型) )2 2字节字节-32-32,7687683232,767767% %Long(Long(长整型长整型) )4 4字节字节-2,147,483,648-2,147,483,6482,147,483,6472,147,483,647& &Single(Single(单精度实型单精度实型) )4 4字节字节负数:负数:-3.402823E38-3.402823E38-1.401298E-45-1.401298E-45正数:正数:1.401298E-451.401298E-453.402823E383.402823E38!Double(Double(双精度实型双精度实型) )8 8字节字节负数:负数:-1.79769313486232E308-1.79769313486232E308 -4.94065645841247E-324 -4.94065645841247E-324正数:正数:4.94065645841247E-3244.94065645841247E-324 1.79769313486232E308 1.79769313486232E308# #Currency(Currency(货币型货币型) )8 8字节字节-922,337,203,685,477.5808-922,337,203,685,477.5808922,337,203,685,477.5807922,337,203,685,477.5807 String(String(字符串型字符串型) )字符串长度字符串长度065,53565,535个字符个字符$ $Byte(Byte(字节型字节型) )1 1字节字节0255255无无Boolean(Boolean(布尔型布尔型) )2 2字节字节TrueTrue或或FalseFalse无无Date(Date(日期型日期型) )8 8字节字节100100年年1 1月月1 1日日99999999年年1212月月3131日日无无Object(Object(对象型对象型) )4 4字节字节任何对象引用任何对象引用无无Variant(Variant(通用型通用型) )可以表示任何数据类型,也称变体型可以表示任何数据类型,也称变体型Visual Basic 基本数据类型表基本数据类型表数值型(Numeric)整数型实数型 字符串型(String)逻辑型(Boolean)日期型(Date) 例如: #1999-08-11 10:25:00 pm# #08/23/99# #03-25-75 20:30:00# #98,7,18# 都是有效的日期型数据。在VB中会自动转换成mm/dd/yyyy(月/日/年)的形式。5. 变体型(Variant)4.2 常量和变量 例如:求解圆周长的代码, L=2*3.14*R 其中的2和3.14是不会改变的量,即常量, 而半径R和周长L都是变量。4.2.1 常量 在程序执行的过程中保持不变的数据称为常量。 VB中常量 常量 直接常量 符号常量 用户自定义常量 系统定义常量1.数值常量数值常量一般的数值常量由正负号、数字和小数点组成。有一般的数值常量由正负号、数字和小数点组成。有4种表示方种表示方式:即整数型、长整型、货币型和浮点型式:即整数型、长整型、货币型和浮点型 。如:。如: 25 34567 25& &HFF &o123 3.14 3.14# 1E-5 2.5D10 2.字符常量字符常量把一串字符用引号括起来,就构成一个字符常量。如:把一串字符用引号括起来,就构成一个字符常量。如:“visual”直接常量直接出现在代码中,也称为直接常量直接出现在代码中,也称为文字常量文字常量,直接常量的,直接常量的表示形式决定它的类型和值。表示形式决定它的类型和值。 1.直接常量4.日期常量日期常量日期型常量的一般表示形式:日期型常量的一般表示形式:mm/dd/yyyy。如如20132013年年9 9月月2020日可表示为:日可表示为: #9/20/2013#9/20/2013#3.逻辑型常量逻辑型常量逻辑型(布尔型)常量只有两个取值:逻辑型(布尔型)常量只有两个取值:True、False 。2. 符号常量符号常量以符号形式表示的常量。以符号形式表示的常量。自定义符号常量形式:自定义符号常量形式:Public| Private Const As 数据类型数据类型=如:如: Const MAX as Integer=999Const MAX as Integer=999Const MYSTRING=“Visual Basic”Const MYSTRING=“Visual Basic”4.2.2 变量 首字符必须是字母;首字符必须是字母; 长度不超过长度不超过255255个字符;个字符; 在作用域内必须惟一;在作用域内必须惟一; 作为变量名的字符串内不得包括点号和用于类型说明的字符作为变量名的字符串内不得包括点号和用于类型说明的字符% %、& &、! !、# #、 、$ $; 不得使用不得使用系统保留字系统保留字。2.变量说明语句变量说明语句 变量说明,就要要求变量说明,就要要求VB创建这个变量,任何变量都创建这个变量,任何变量都必须在说明以后才能使用。必须在说明以后才能使用。 说明变量,必须指明该变量的三个要素:名称、类说明变量,必须指明该变量的三个要素:名称、类型和有效的作用范围。型和有效的作用范围。 Dim As , As Private As , As Public As , As Static As , As 例如下面语句声明了一个名为 X 的整型变量,和一个名为Y的单精度型变量 Dim X As Integer , Y As Single (1)用)用Dim和和Static定义变量名称和类型(定义变量名称和类型(标准定义方法标准定义方法)(2)省略)省略As子句子句 Dim 变量名变量名 As 数据类型数据类型 Static 变量名变量名 As 数据类型数据类型Static和和Dim 的不同之处:的不同之处:在执行一个过程结束时,过程中所用到的在执行一个过程结束时,过程中所用到的Static变量的值会保留,下次再调用此过程变量的值会保留,下次再调用此过程时,变量的初值是上次调用结束时被保留的时,变量的初值是上次调用结束时被保留的值;而值;而Dim定义的变量在过程结束时不保留,定义的变量在过程结束时不保留,每次调用时需要重新初始化每次调用时需要重新初始化(后续课程详解后续课程详解)。 Dim 变量名变量名变量将会定义为变量将会定义为变体类型变体类型,变体型变量可以存放各种类型,变体型变量可以存放各种类型的数据的数据 ,赋给变量什么类型的值它就存放什么类型的值,赋给变量什么类型的值它就存放什么类型的值 。 (3)用类型声明符定义变量类型()用类型声明符定义变量类型(隐式说明隐式说明) 例如,例如,x%是一个整型变量,是一个整型变量,y$是一个字符串变量,是一个字符串变量,m#是是一个双精度浮点型变量。一个双精度浮点型变量。 符号符号 数据类型数据类型 举例举例 $ String strName$ % Integer ITerm%,var% & Long colorValue& ! Single distance! # Double ExactDistance#, Currency cSalariesOption Explicit语句语句在模块中使用在模块中使用Option Explicit语句,系统将检查模块中所有语句,系统将检查模块中所有未加显式说明的变量。未加显式说明的变量。3.变量作用域变量作用域变量的作用域:变量的作用域:分为分为局部变量、窗体局部变量、窗体/ /模块级变量、全局变量。模块级变量、全局变量。局部变量局部变量在过程内用在过程内用dimdim(staticstatic)定义,)定义,只在本过程内有效只在本过程内有效。窗体窗体/ /模块级变量模块级变量在过程外用在过程外用dim dim 或或privateprivate定义,定义,在本窗体在本窗体/ / 模块内所有过程都有模块内所有过程都有效效。全局变量全局变量在窗体模块中用在窗体模块中用PublicPublic,标准模块中用,标准模块中用PublicPublic或或GlobalGlobal定义,定义,在在整个应用程序中有效。整个应用程序中有效。注意:Global不能在窗体模块和类模块中声明,Public可以在各种模块中声明说明:标准模块(文件扩展名为 .BAS)是应用程序内其它模块访问的过程和声明的容器 注意1 变量已经定义,即有值,VB的变量都有初始值:变量类型变量类型初始值初始值所有数值类型0变长字符串空串定长字符串固定长度的空格逻辑性False变体型Empty 注意2 可以用一条变量定义语句定义多个变量,但每个变量都要用As Type短语说明其类型,哪个没有说明,哪个即为变体型。例如: Dim X, Y ,Z As Integer上面语句定义了3个变量,其中Z为integer,而X和Y都是Variant类型4.3 函数函数在在Visual BasicVisual Basic中,有两类函数:内部函数和用户自定义函中,有两类函数:内部函数和用户自定义函数。本章节讨论内部函数(也称标准函数或系统函数)。数。本章节讨论内部函数(也称标准函数或系统函数)。 使用使用函数称为函数调用。函数调用形式如下:函数称为函数调用。函数调用形式如下: (p1,p2,)内部函数包括:内部函数包括:数学数学函数;函数; 转换转换函数;函数;字符字符函数;函数;日期与时间日期与时间函数函数一数学函数一数学函数函数函数说说 明明示例示例返回值返回值Sin(x)Sin(x)返回自变量返回自变量x x的正弦值的正弦值Sin(0)Sin(0)0 0Cos(x)Cos(x)返回自变量返回自变量x x的余弦值的余弦值Cos(0)Cos(0)1 1Tan(x)Tan(x)返回自变量返回自变量x x的正切值的正切值Tan(0)Tan(0)0 0Atn(x)Atn(x)返回自变量返回自变量x x的反正切值的反正切值Atn(0)Atn(0)0 0Abs(x)Abs(x)返回自变量返回自变量x x的绝对值的绝对值Abs(-4)Abs(-4)4 4Exp(x)Exp(x)返回以返回以e e为底,以为底,以x x为指数的值,即为指数的值,即e e的的x x次方次方e ex xExp(1)Exp(1)2.71832.7183Sqr(x)Sqr(x)返回返回x x的平方根的平方根Sqr(9)Sqr(9)3 3Sgn(x)Sgn(x)返回数的符号值:当返回数的符号值:当x x为负数时,函数返回为负数时,函数返回1 1;当当x x为为0 0时,函数返回时,函数返回0 0;当;当x x为正数时,函数返回为正数时,函数返回1 1Sgn(4)Sgn(4)1 1Log(x)Log(x)返回以返回以e e为底的自然对数为底的自然对数Log(2.7183)Log(2.7183)1 1Round(x,n)Round(x,n)对对x x进行四舍五入,保留的小数位数由进行四舍五入,保留的小数位数由n n指定指定Round(5.346,2)Round(5.346,2)5.355.35二转换函数二转换函数函数函数说说 明明示例示例返回值返回值Int(x)Int(x)求不大于自变量求不大于自变量x x的最大数的最大数Int(-4.2)Int(-4.2)-5-5Fix(x)Fix(x)去掉去掉1 1个浮点数的小数部分,保个浮点数的小数部分,保留其整数部分留其整数部分Fix(-4.7)Fix(-4.7)-4-4Cint(x)Cint(x)把把x x的小数部分四舍五入,转换的小数部分四舍五入,转换为整数为整数Cint(-4.7)Cint(-4.7)-5-5Asc(x$)Asc(x$)返回字符串返回字符串x$x$中第一个字符的中第一个字符的ASCIIASCII码码AscAsc( (“abcabc”) )9797Chr(x)Chr(x)把把x x的值转换为相应的的值转换为相应的ASCIIASCII码码Chr(110)Chr(110)或或Chr$(110)Chr$(110)“n n”Str(x)Str(x)把把x x的值转换为一个字符串的值转换为一个字符串Str(23.4)Str(23.4)或或Str$(23.4)Str$(23.4)“23.423.4”Val(x)Val(x)将数字字符串将数字字符串x x转换为数值转换为数值Val(Val(“45AB45AB”) )4545Lcase(x)Lcase(x) 将将x x转换为小写字母转换为小写字母Lcase(Lcase(“VisualBasicVisualBasic”) )“visualbasicvisualbasic”Ucase(x)Ucase(x) 将将x x转换为大写字母转换为大写字母Ucase(Ucase(“VisualBasicVisualBasic”) )“VISUALBASICVISUALBASIC”注意注意 分数部分恰好为 0.5 时,CInt 函数通常将其四舍五入为最接近的偶数 Val:在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。 Print Cint (-4.5) Print Cint (2.5) Print Cint (3.5) Print val(”4.5ABCD”) Print val(”4. 5ABCD”) Print val(” 4. 5ABCD”) Print val(”4. 5ABCD”) Print val(”&HFF”) Print val(“HFF”)例子例子三字符串函数三字符串函数函数函数说说 明明示例示例返回值返回值Ltrim$(Ltrim$(字符串字符串) )去掉字符串左边的空白字符去掉字符串左边的空白字符LtrimLtrim$($(“OKOK”) )“OKOK”Rtrim$(Rtrim$(字符串字符串) )去掉字符串右边的空白字符去掉字符串右边的空白字符RtrimRtrim$($(“OKOK”) )“OKOK”Left$(Left$(字符串字符串,n),n)取字符串左部的取字符串左部的n n个字符个字符Left$(Left$(“ABCDABCD”,2),2)“ABAB”Right$(Right$(字符串字符串,n),n)取字符串右部的取字符串右部的n n个字符个字符Right$(Right$(“ABCDABCD”,2),2)“CDCD”Mid$(Mid$(字符串字符串,p,n),p,n)从位置从位置p p开始取字符串的开始取字符串的n n个字符个字符MID$(MID$(“ABCDABCD”,2,2),2,2)“BCBC”Len(Len(字符串字符串) )测试字符串的长度测试字符串的长度Len(Len(“Visual BasicVisual Basic”) )1212String$(n,String$(n,字符串字符串) )返回由返回由n n个字符组成的字符串个字符组成的字符串String$(4,String$(4,“* *”) )“* * * * *”Space$(n)Space$(n)返回返回n n个空格个空格Space$(3)Space$(3)“”InstrInstr(startstart,字字符串符串1,1,字符串字符串2)2)返回字符串返回字符串2 2在字符串在字符串1 1中的中的首次首次出现的位置出现的位置Instr(Instr(“ComputerComputer”, ,“p pu u”) )4 4四日期与时间函数四日期与时间函数函数函数说说 明明例例返回值返回值DateDate返回系统当前日期返回系统当前日期DateDate2012-7-252012-7-25TimeTime返回系统当前时间返回系统当前时间 timetime9:35:56 AM9:35:56 AMNowNow返回系统当前日期和返回系统当前日期和时间时间NowNow2012-7-25 2012-7-25 9:31:26 AM9:31:26 AMYear(x)Year(x)返回指定日期(返回指定日期(x x)的)的年份年份Year(2012-07-Year(2012-07-25)25)20122012Month(x)Month(x)返回指定日期(返回指定日期(x x)的)的月份月份Month(2012-07-Month(2012-07-25)25)7 7Day(x)Day(x)返回指定日期(返回指定日期(x x)的)的某一日某一日Day(2012-07-Day(2012-07-25)25)2525Weekday(x,n)Weekday(x,n)返回日期(返回日期(x x)是一周)是一周中的第几天中的第几天Weekday(2012-Weekday(2012-07-25)07-25)3 3五随机函数五随机函数Rnd(x) 产生一个在产生一个在0,1)区间均匀分布的随机数。区间均匀分布的随机数。如:随机生成一个两位的整数,可用下式:如:随机生成一个两位的整数,可用下式: Int(99-10+1)*Rnd+10)即即 Int(90*Rnd+10)说明:说明:当一个应用程序不断地重复使用随机函数时,同一序当一个应用程序不断地重复使用随机函数时,同一序列的随机数会反复出现。可用列的随机数会反复出现。可用Randomize语句消除这种情况。语句消除这种情况。用法:用法:Randomize (x)其中:其中:x是一个整型数,它是随机数发是一个整型数,它是随机数发生器的生器的“种子数种子数”,可以省略。,可以省略。使用该函数能生成某个范围内的随机整数,公式如下:使用该函数能生成某个范围内的随机整数,公式如下:Int(upperbound - lowerbound + 1) * Rnd + lowerbound)这里,这里,upperbound 是随机数范围的上限,而是随机数范围的上限,而 lowerbound 则则是随机数范围的下限。是随机数范围的下限。4.4 运算符与表达式运算符与表达式VB中的中的运算符和表达式可分为运算符和表达式可分为算术运算符算术运算符和和算术表达式算术表达式、关系关系运算符运算符和和关系表达式关系表达式、逻辑运算符逻辑运算符和和逻辑表达式逻辑表达式。一算术运算符与算术表达式一算术运算符与算术表达式运算符运算符含义含义举例举例说明说明+ +加加25+30 25+30 结果为结果为5555+ +字符连接字符连接“VBVB”+ +“程序程序”结果为结果为“VBVB程序程序”-减减40-10 40-10 结果为结果为3 30-取负取负-22 22 结果为结果为-22-22单目运算,单目运算,2222取负取负* *乘乘4 4* *2 2 结果为结果为8 8/ /除除7/2 7/2 结果为结果为3.53.5整除整除73 73 结果为结果为2 2结果取商的整数部分结果取商的整数部分ModMod取余取余7 Mod 3 7 Mod 3 结果为结果为1 1两数相除之后的余数两数相除之后的余数 求幂求幂33 33 结果为结果为2727& &字符连接字符连接 “VBVB”& &“程序程序” 结果为结果为“VBVB程序程序”两个字符串连接两个字符串连接算术运算符的优先级:算术运算符的优先级:()() 正负号正负号 函数函数 乘方乘方 * / MOD + - 关系运算也称比较运算,关系表达式的值是一个逻辑值,逻辑关系运算也称比较运算,关系表达式的值是一个逻辑值,逻辑值只有值只有“真真”(TrueTrue)和)和“假假”(FalseFalse)两个。)两个。 二关系运算符与关系表达式二关系运算符与关系表达式运算符运算符含义含义举例举例说明说明= =等于等于13=1313=13结果是结果是TrueTrue 大于大于5055 5055 结果是结果是FalseFalse=大于等于大于等于6=6 6=6 结果是结果是TrueTrue 小于小于“catcat” “batbat” 结果是结果是FalseFalse“c c”大于大于“b b”所以结果所以结果为假为假=小于等于小于等于16-2=14 16-2=14 结果是结果是TrueTrue不等于不等于4030 4030 结果是结果是TrueTrueLikeLike字符串匹配字符串匹配“basicbasic” Like Like “b b* *” 结果结果是是TrueTrue* *为通配符为通配符IsIs对象比较对象比较Form1 Is Form2 Form1 Is Form2 结果是结果是FalseFalseForm1Form1和和Form2Form2均为对象均为对象三逻辑运算符与逻辑表达式三逻辑运算符与逻辑表达式 逻辑运算真值表逻辑运算真值表逻辑运算是对逻辑值进行的运算。逻辑运算是对逻辑值进行的运算。a ab ba And ba And ba Or ba Or bNot aNot aa Xor ba Xor ba Eqv ba Eqv ba Imp ba Imp bTrueTrueTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseTrueTrueTrueTrueTrueTrueFalseFalseFalseFalseTrueTrueFalseFalseTrueTrueFalseFalseFalseFalseFalseFalseTrueTrueFalseFalseTrueTrueTrueTrueTrueTrueFalseFalseTrueTrueFalseFalseFalseFalseFalseFalseFalseFalseTrueTrueFalseFalseTrueTrueTrueTrue逻辑运算符的优先顺序为:逻辑运算符的优先顺序为:NotAndOrXorEqv NotAndOrXorEqv Imp Imp。运算符运算符含义含义举例举例说明说明NotNot逻辑非逻辑非Not(Not(“a a” 8 And 38 And 39 结果为假结果为假假假AndAnd真真 结果为假结果为假OrOr逻辑或逻辑或51 51 结果为真结果为真真真OrOr真真 结果为真结果为真XorXor逻辑异或逻辑异或57 Xor 81 57 Xor 81 结果为真结果为真真真XorXor假假 结果为真结果为真EqvEqv逻辑等于逻辑等于“a a” “e e” 结果为假结果为假真真EqvEqv假假 结果为假结果为假ImpImp逻辑蕴含逻辑蕴含113 113 Imp 1115 Imp 1115 结果为假结果为假真真ImpImp假假 前真后假为假前真后假为假算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符 dim a,b,c a=8:b=10:c=6 Not (a-1b) ab+3 And bc ab Or bc四各运算符的优先次序四各运算符的优先次序FalseTrue True 表达式由常量、变量、函数、运算符以及圆括号(),按照一定的规则组成, 不管表达式的形式如何,都会计算出一个结果,该结果的类型由参与运算的数据和运算符决定。 数学式数学式 写成写成VB表达式为:表达式为: aacbb242(-b+sqr(b2-4*a*c)/(2*a)注意4:关系表达式和逻辑表达式 当使用关系运算符或逻辑运算符时,表达式又称为关系表达式或逻辑表达式。 关系运算一般表示一个简单的条件。 age20 、score80、x+yz等。 逻辑表达式表示较复杂的条件。 数学中的0 x5,写成VB表达式应为 0 x And x5注意5:结果类型The End!
展开阅读全文