Download presentation
Presentation is loading. Please wait.
1
第3章 VB语言基础 本章主要内容: ● 基本数据类型 ● 常量、变量 ● 表达式 ● 常用内部函数
2
3.1 基本数据类型 表3-1列出了VB中定义的全部基本数据类型。 表3-1 VB 6.0的基本数据类型
3
类 型 名 称 存储空间(Byte) 范 围 整型 Integer 2 –32 768~32 767,小数部分四舍五入 长整型 Long 4 – ~ ,小数部分四舍五入 单精度浮点型 Single 负数:– E38~– E–45 正数: E–45~ E38 双精度浮点型 Double 8 负数– D308~– D–324 正数: D–324~ D308 货币型 Currency – ~ 字节型 Byte 1 0~255 变长字符串 String 字符串长度 0~大约20亿字节 定长字符串 String*size size 1~65 535字节(64KB) 布尔型 Boolean True或False 日期型 Date ~ 对象型 Object 任何对象的引用 可变类型(数值) Variant 16 任何数值,最大可达Double的范围 可变类型(字符) 与可变长度字符串有相同的范围
4
3.1.1 数值(Numeric)型数据 1. 常规整型数Integer 2. 长整型数Long 3. 单精度数Single
4. 双精度数Double 5. 货币型Currency 6. 字节Byte 7. 数值型数据的使用说明
5
3.1.1 数值(Numeric)型数据 1. 常规整型数Integer 2. 长整型数Long 3. 单精度数Single
4. 双精度数Double 5. 货币型Currency 6. 字节Byte 7. 数值型数据的使用说明
6
字符型(String)数据 1. 变长字符串 变长字符串是指字符串的长度是不固定的,随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串变量如没有定义成固定长的,都属于可变长字符串。例如: x = "Happy New Year to you" x = "程序设计" x = " ab" 其中,字符型变量x的长度在程序中可以改变。
7
字符型(String)数据 1. 变长字符串 变长字符串是指字符串的长度是不固定的,随着对字符串变量赋予新的字符串,它的长度可增可减。按照缺省规定,一个字符串变量如没有定义成固定长的,都属于可变长字符串。例如: x = "Happy New Year to you" x = "程序设计" x = " ab" 其中,字符型变量x的长度在程序中可以改变。
8
2. 定长字符串 定长字符串是指它在程序执行过程中,始终保持其长度不变的字符串。例如,声明一个长度为10个字符的字符串变量后,如果赋予字符串的字符少于10个,则用空格将不足部分填满。如果赋予字符串的长度超过10个,则截去超出部分的字符。 布尔(Boolean)型数据 布尔型数据是一个逻辑值,用两个字节存储,它只有两个值:真(True)和假(False)。 当把数值型数据转换为Boolean型时,0会转换为False,其他非0值转换为True。当把Boolean值转换为数值型时,False转换为0,True转换成-1。
9
3.1.4 日期(Date)型数据 3.1.5 对象(Object)型数据
#05/15/2005# #2005–05–18# #05/13/ :10:38 AM# 如果输入的日期或时间是非法的或不存在的,系统将提示出错。 对象(Object)型数据 对象型数据可用来表示应用程序中或某些其他应用程序中的对象。可以用Set语句指定一个被声明为Object的变量去引用应用程序所识别的任何实际对象。
10
变体(Variant)型数据 变体型数据是一种可变的数据类型,可以存放任何类型的数据,因此变体类型可说是VB中用途最广、同时也是最灵活的一种变量类型。在程序中不特别说明时,VB会自动将该变量默认为Variant型变量。例如 a = "20" ' a包含"20"(双字符的串),字符型 a = a – ' 现在a包含数值6,数值型 a = "X" & a ' 现在a包含"X14"(双字符的串),字符型
11
3.2 常量 直接常量 1. 字符串常量 字符串常量是用双引号括起来的一串字符。这些字符可以是除双引号“"”和回车、换行符以外的所有字符。例如: "$12,345.00" "vb" "a+b=" 2. 数值常量 数值常量就是常数,共有5种数值类型:整数、长整数、定点数、浮点数和字节数。 3. 布尔常量 布尔常量只有True(真)和False(假)两个值。 4. 日期常量 用两个“#”符号把表示日期和时间的值括起来表示日期常量。例如: #05/15/2005# #28/05/2005# #May :25:12#
12
符号常量 1. 系统内部定义的常量 系统内部定义的常量是指VB内置的一些便于记忆的常量,通常这类常量会以vb开头,例如vbModal,vbModeless等。其实vbModal代表1,vbModeless代表0,只不过这几个常量是VB系统预先帮用户定义好了。 其他在VB程序中用到的对象也会提供一些预先定义好的常量,例如数据处理对象(Data Access Object,DAO)所提供的常量会以db开头等等。这些常量可与应用程序的对象、方法和属性一起使用,在代码中可以直接使用它们。
13
可以在“对象浏览器”中查看系统内部定义的常量,操作方法是:
① 选择“视图”菜单中的“对象浏览器”,则打开“对象浏览器”窗口,如图3-1所示。
14
② 在下拉列表框中选择VBA对象库。 ③ 在“类”列表框中选择“全局”,右侧的成员列表中显示出预定义的常量,窗口底端的文本区域中将显示该常量的功能。 在为属性或变量输入数据时,应该检查一下是否有系统已经定义好的常量可供使用,使用系统常量可使代码具备自我解释功能,易于阅读和维护。
15
2. 用户定义的常量 声明常量的语法为: [Public | Private] Const〈常量名〉[As〈数据类型〉] =〈表达式〉…
说明: ①〈常量名〉由1~255个字符组成,包含的符号可以是数字、英文字母或下划线,中间不能有“.”或其他类型说明字符,并且必须以英文字母开头。 ②〈表达式〉由数值常量、字符串等常量及运算符组成,可以包含前面定义过的常量,但不能使用函数调用。 Const conPi = ' 表示数值 Public Const conMaxPlanets As Integer = ' 表示数值 Const conReleaseDate = #06/12/2005# ' 表示日期 Const conCodeName = "Apple" ' 表示字符串
16
③ 如果用逗号进行分隔,则在一行中可放置多个常量声明:
Public Const conPi = 3.14, conMaxPlanets = 25, conWorldPop = 6E+09 ④ 等号“=”右边的表达式往往是数字或字符串,但也可以是其结果为数或字符串的表达式(尽管表达式不能包含函数调用)。甚至可用先前定义过的常量定义新常量。 Const conPi2 = conPi * 3 ⑤ Const语句的使用范围和规则: l 如果要创建仅存在于过程中的常量,应在该过程内部声明常量,如Const a=20。 l 如果要创建的常量对模块中所有过程都有效,但对模块之外任何代码都无效,应在模块的声明段中声明常量,如Private Const a=20。 l 如果要创建在整个应用程序中有效的常量,应在标准模块的声明段中进行声明,并在Const前面放置Public关键字,如Public Const a=20。在窗体模块或类模块中不能声明Public常量。
17
3.3 变量 在VB中,变量有两种形式,即属性变量和内存变量。
3.3 变量 在VB中,变量有两种形式,即属性变量和内存变量。 l 属性变量。在窗体中设计用户界面时,VB会自动为产生的对象(包括窗体本身)创建一组变量,即属性变量,并为每个变量设置其默认值。这类变量可供程序员直接使用,如引用其值或赋予新值。由于属性变量是VB系统自动创建的,所以无需程序员费心。 l 内存变量。内存变量要程序员根据程序需要创建,下面主要介绍内存变量的建立方法。
18
3.3.1 变量的命名规则 1. 命名规则 变量是一个名字,在给变量命名时应遵循以下命名规则:
变量的命名规则 1. 命名规则 变量是一个名字,在给变量命名时应遵循以下命名规则: ① 变量名只能由字母、数字和下划线组成,中间不能包含小数点。a.bc是非法的。 ② 变量名的第一个字符必须是英文字母。如:vbX,x1。不能为1x。 ③ 组成变量名的字符数不得超过255个字符。 ④ 不能用VB的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。例如用Print和Print$作为变量名是非法的,而用Print_Number作为变量名是合法的。
19
2. 变量命名的注意事项 在为变量命名时应注意:
① 取名最好使用有明确实际意义和容易记忆以及通用的变量名,即要见名知义。比如用sum(或s)代表求和,用Difference(或d)代表求差等。 ② 尽可能简单明了,尽量不要使变量名太长,因为太长了不便于阅读和书写。 ③ 不能用VB的关键字做变量名。VB的关键字是指VB中系统已经定义的词,如语句、函数、运算符名。 ④ 变量名不能与过程名和符号常量名相同。 ⑤ 尽量采用VB建议的变量名前缀或后缀的约定来命名,以便区分变量的类型。如:intMax,strName。 ⑥ VB不区分变量名和其他名字中字母的大小写,如Hello、HOLLO、hello指的是同一个名字。为了便于阅读,每个单词开头的字母一般用大写,即大小写混合使用组成变量名(或其他名字),例如PrintText。此外,习惯上符号常量一般用大写字母定义。
20
变量的声明 声明语句的语法为: {Dim | Private | Static | Public}〈变量名〉[As〈类型〉][,〈变量名2〉[As〈类型2〉]] … 说明: ① Public语句用来声明公有的模块级变量,Private或Dim语句用来声明私有的模块级变量,Dim或Private或Static语句来声明过程级局部变量。 ②〈类型〉用来定义被声明〈变量名〉的数据类型或对象类型。变量的数据类型可以是表3-1中的类型,也可以是用户自定义的类型。例如 Dim Ct As Integer ' 将Ct定义为Integer(整型)变量 Private Sum1 As String, stNa As String ' 将Sum1和stNa定义为String(字符型)变量 Static Aver As Single ' 将Aver定义为Single(单精度型)变量 Private Name1 As String* ' 将Name1定义为定长字符型变量 Dim aa ' 若没有指定类型,变量是Variant类型
21
使用声明语句建立一个变量后,VB自动将数值类型的变量赋初值0,将字符或Variant类型的变量赋空串,将布尔型的变量赋False。
Dim Ct As Integer 当为该变量赋值时: Ct = ' 数1.8为单精度型Single 变量Ct自动将1.8四舍五入转换为整型数2。
22
3.4 表达式 3.4.1 算术表达式 算术表达式的格式为: 〈数值1〉〈算术运算符1〉〈数值2〉[〈算术运算符2〉〈数值3〉]
3.4 表达式 算术表达式 算术表达式的格式为: 〈数值1〉〈算术运算符1〉〈数值2〉[〈算术运算符2〉〈数值3〉] 1. 算术运算符 VB有7个算术运算符,如表3-2所示。
23
表3-2 算术运算符 运 算 符 名 称 表 达 式 例 子 ^ 乘方 a ^ b * 乘法 a * b / 浮点除法 a / b \
表3-2 算术运算符 运 算 符 名 称 表 达 式 例 子 ^ 乘方 a ^ b * 乘法 a * b / 浮点除法 a / b \ 整数除法 a \ b Mod 求余的模运算 a Mod b + 加法 a+b – 减法、取负 a-b,-c
24
2. 表达式的书写规则 算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意: ① 每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:45要写成4^5,x1+x2要写成x1+x2。 ② 原来在数学表达式中省略的内容必须重新写上。例如:3xy要写成3* x * y。 ③ 所有括号都用小括号( ),括号必须配对。例如:5[x+2(y+z)]必须写成5 *(x+2*(y+z))。 ④ 要把数学表达式中的有些符号,改成VB中可以表示的符号。例如:要把πr2改为pi*r^2。
25
3. 算术运算符的优先级 在算术表达式中包含各种算术运算符,必须规定各个运算的先后顺序,这就是算术运算符的优先级,如下所示。 指数运算^ → 取负- → 乘法*、浮点除法/ → 整除\ → 求模Mod → 加法+、减法- 字符串表达式 VB中的字符串运算符是“&”,该运算符用于连接两个或更多的字符串。字符串表达式的格式为: 〈字符串1〉&〈字符串2〉[&〈字符串3〉]
26
当两个字符串用连接运算符连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是一个更长的、包含两个源字符串的全部内容的字符串。如果要把多个字符串连接起来,每两个字符串之间都要用“&”号分隔。例如: "abc" & "ef" ' 连接后结果为:"abcef" "欢迎你" & "们" ' 连接后结果为:"欢迎你们" "ABC 12" & "abcd " & " " ' 连接后结果为:"ABC 12abcd " 另外,在VB中,除用“&”作为连接运算符外,还可以用“+”把两个字符串连接成一个字符串。但是“+”容易与算术加法运算符产生混淆,所以,建议最好用“&”号。同时,“&”会自动将非字符串类型的数据转换成字符串后再进行连接,而“+”则不能自动转换。例如: 123 & 456 & "aa" ' 连接后结果为:"123456aa"
27
日期表达式 日期型表达式由算术运算符“+、–”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“–”运算。有下面3种情况: ① 两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如: #05/15/2005# – #05/10/2005# ' 结果为数值型数据:5 ② 一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算日期)。例如: #06/15/2005# ' 结果为日期型数据:# # ③ 一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算日期)。例如: #06/15/2005# – ' 结果为日期型数据:# #
28
3.5 常用内部函数 3.5.1 数学运算函数 在VB中,有两类函数,即内部函数和用户定义函数。
3.5 常用内部函数 在VB中,有两类函数,即内部函数和用户定义函数。 l 用户定义函数是由用户自己根据需要定义的函数。 l 内部函数也称标准函数,VB提供了大量的内部函数。在这些函数中,有些是通用的,有些则与某种操作有关。这些函数可分为:转换函数、数学函数、字符串函数、日期时间函数、随机函数。 数学运算函数 数学运算函数用于各种数学运算。常用数学运算函数见表3-3。
29
表3-3 常用数学运算函数 函 数 说 明 Sin 返回弧度的正弦 Sgn 返回数的符号值 Cos 返回弧度的余弦 Sqr 返回数的平方根
表3-3 常用数学运算函数 函 数 说 明 Sin 返回弧度的正弦 Sgn 返回数的符号值 Cos 返回弧度的余弦 Sqr 返回数的平方根 Abs 返回数的绝对值 Int 返回不大于给定数的最大整数 Exp 返回e的指定次幂 Fix 返回数的整数部分
30
3.5.2 字符串函数 VB提供了大量的字符串函数,具有强大的字符串处理能力,见表3-4。 表3-4 常用字符串函数 函 数 说 明 Str
字符串函数 VB提供了大量的字符串函数,具有强大的字符串处理能力,见表3-4。 表3-4 常用字符串函数 函 数 说 明 Str 将数值型数据转换为字符型数据 Space 返回由指定数目空格字符组成的字符串 Val 将数字字符串转换为相应的数值 Lcase 返回以小写字母组成的字符串 Len 返回字符串的长度 Ucase 返回以大写字母组成的字符串
31
日期和时间函数 时间和日期函数使程序能向用户显示日期和时间,提供某个事件何时发生及持续时间长短的信息。常用时间和日期函数见表3-5。 表3-5 常用日期和时间函数 函 数 说 明 Now 返回系统日期和时间(yy–mm–dd hh:mm:ss) Time 返回当前时间(hh:mm:ss) Date 返回当前日期(yy–mm–dd) Timer 返回从午夜算起已过的秒数
32
3.5.4 随机数语句和函数 在测试、模拟和游戏程序中,经常要使用随机数。随机数语句和函数见表3-6。 表3-6 随机数函数和语句
随机数语句和函数 在测试、模拟和游戏程序中,经常要使用随机数。随机数语句和函数见表3-6。 表3-6 随机数函数和语句 函 数 和 语 句 说 明 Randomize语句 产生随机数的种子 Rnd函数 产生0~1之间的随机数
33
程序语句的形式 程序语句是VB关键字、属性、函数、运算符以及能够生成VB编辑器可识别指令的符号的任意组合。一个完整的程序语句可以简单到只有一个关键字,例如: Print 语句也可以是各种元素的组合,例如下面的语句,把当前系统时间赋值给标签的Caption属性: Label1.Caption = Time 对象名 属性名 VB函数 赋值号 建立程序语句时必须遵从的构造规则称为语法。编写正确程序语句的前提,就是学习语言元素的语法,并在程序中使用这些元素正确地处理数据。
34
3.6.2 语句的书写规则 在编写程序代码时要遵循一定的规则,这样写出的程序既能被VB正确地识别,又能增加程序的可读性。 1. 自动语法检查
语句的书写规则 在编写程序代码时要遵循一定的规则,这样写出的程序既能被VB正确地识别,又能增加程序的可读性。 1. 自动语法检查 如果设置了“自动语法检测”(用“工具”菜单“选项”命令中的“编辑器”)选项卡,则在输入语句的过程中,VB将自动对输入的内容进行语法检查,如果发现语法错误,将弹出一个信息框提示出错的原因。 2. 格式化处理 VB会按约定对语句进行简单的格式化处理,例如关键字、函数的第一字母自动变为大写,运算符前后加空格等。在输入语句时,命令词、函数等可以不必区分大小写。例如,在输入Print时,不管输入Print、print,还是PRINT,按回车键后都变为Print。为了提高程序的可读性,在代码中应加上适当的空格,同时应按惯例处理字母的大小写。
35
3. 复合语句行 一般情况下,输入程序时要求一行一句,一句一行。但是VB也允许使用复合语句行,即把几个语句放在一个语句行中,语句之间用冒号“:”隔开。一个语句行的长度最多不能超过1023个字符。例如: Label1.Caption = "姓名" : Label2.Caption = "性别" : Label3.Caption = "学号" 4. 语句的续行 当一条语句很长时,在代码编辑窗口阅读程序时将不便查看,使用滚动条又比较麻烦。这时,就可以使用续行功能,用续行符“_”将一个较长的语句分为多个程序行。例如: Label1.Caption = "本程序实现的功能为" & _ "自动实现学生成绩的浏览、查询、修改、打印等" 在使用续行符时,在它前面至少要加一个空格,并且续行符只能出现在行尾。
36
命令格式中的符号约定 为了便于解释语句、方法和函数,本书语句、方法和函数格式中的符号采用统一约定。在各语句、方法、函数的语法格式和功能说明中,以尖括号〈 〉、方括号[ ]、花括号{ }、竖线|、逗号加省略号,...、省略号...作为专用符号,这些符号的含义见表3-7。
37
表3-7 VB命令格式中的约定符号 符 号 含 义 〈 〉 为必选参数表示符。尖括号中的中文提示说明,由使用者根据问题的需要提供具体参数。如果缺少必选参数,语句则发生语法错误 [ ] 为可选参数表示符。方括号中的内容选与不选由用户根据具体情况决定,且都不影响语句本身的功能。如省略,则默认为缺省值 | 为多中取一表示符,含义为“或者选择”。竖线分隔多个选择项,必须选择其中之一 { } 包含多中取一的各项 , ... 表示同类项目的重复出现 ... 表示省略了在当时叙述中不涉及的部分 注意:这些专用符号和其中的提示,不是语句行或函数的组成部分。在输入具体命令或函数时,上面的符号均不可作为语句中的成分输入计算机,它们只是语句、函数格式的书面表示。 3.7 习题
Similar presentations