1、第3章VisualBasic语言基础 熟悉VB程序中代码和语句书写规则 掌握VB的数据类型 掌握VB的运算符和表达式的使用 掌握常用内部函数的使用 本章重点 变量和常量的定义及使用 运算符和表达式的使用及常用内部函数的使用 本章难点 数据类型 运算符与表达式 本章内容及要求 3 1VisualBasic语言字符集及编码规则 3 1 1VisualBasic的字符集 l字母 大写英文字母A Z 小写英文字母a z l数字 0一9 l专用字符 共27个 3 1 2编码规则与约定 一 编码规则1 VB代码中不区分字母的大小写 3 在同一行上可以书写多条语句 语句间要用冒号 分隔 3 若一个语句行不能
2、写下全部语句 或在特别需要时 可以换行 换行时需在本行后加入续行符 1个空格加下划线 4 一行最多允许255个字符 5 注释以Rem开头 也可以使用单引号 注释内容可直接出现在语句的后面 6 在程序转向时需用到标号 标号是以字母开始而以冒号结束的字符串 3 1VisualBasic语言字符集及编码规则 二 约定 1 为了提高程序的可读性 对于VB中的关键字其首字母大写 其余字母小写3 注释有利于程序的维护和调试Rem开始或单撇 例如 ThisisaVBREMThisisaVB在6 0中新增了 块注释 取消块注释 3 通常不使用行号4 对象名命名约定 每个对象的名字由3个小写字母组成的前缀 指明
3、对象的类型 和表示该对象作用的缩写字母组成 3 1VisualBasic语言字符集及编码规则 3 2数据类型 3 2 1VisualBasic的标准数据类型 3 2 2用户自定义类型 在模块级别中使用 用于定义包含一个或多个元素的用户自定义的数据类型 使用形式 Type自定义类型名元素名 下标 As类型名元素名 下标 As类型名 EndType说明 3 2数据类型 TypeStudentXhAsStringXmAsStringXbAsStringNlAsIntegerScoreAsSingleEndType 例如 对于一个学生的 学号 姓名 性别 年龄 入学成绩 等数据 为了处理数据的方便 常
4、常需要把这些数据定义成一个新的数据类型 如Student类型 3 2数据类型 3 3常量和变量 3 3 1常量在程序运行过程中 其值不能被改变的量称为常量 在VB中有三类常量 普通常量符号常量系统常量 一 普通常量1 整型常量 1 整型 Integer 表示 32768至32767之间的整数例如 1011020 2 长整型 Long 表示 2 147 483 648至2 147 483 647之间的整数例如 长整型常数的书写 23 通常我们说的整型常量指的是十进制整数 但VB中可以使用八进制和十六进制形式的整型常数 因此整型常数有如下三种形式 1 十进制整数 如125 0 89 202 八进制
5、整数 以 或 O 字母O 开头的整数是八进制整数 如 O25表示八进制整数25 即 25 8 等于十进制数21 3 十六进制 以 H开头的整数是十六进制整数 如 H25表示十六进制整数25 即 25 16 等于十进制数37 VB中的颜色数据常常用十六进制整数表示 3 3常量和变量 2 实数1 单精度实型 Single 有效数为7位2 双精度实型 Double 有效数为15位常量的表示 1 十进制小数形式 它是由正负号 数字 0 9 和小数点 或类型符号 组成 即 n n n 或 n 其中n是0 9的数字 例如0 123 123 123 0 123 123 等2 指数形式 nE m或 n nE
6、m nD m或 n nD m例 1 25E 3和1 25D 3相当于1250 0或者1 25 103 3 3常量和变量 3 字符串常量在VB中字符串常量是用双引号 括起的一串字符 可以是所有西文字符和汉字 标点符号等 例如 ABC abcdefg 123 0 VB程序设计 等 说明 1 表示空字符串 而 表示有一个空格的字符串 2 若字符串中有双引号 例如ABD XYZ 则用连续两个双引号表示 即 ABD XYZ 4 逻辑 Boolean 数据类型只有两个值True 或False 将逻辑数据转换成整型时 True为 1 False为0 其它数据转换成逻辑数据时 非0为True 0为False
7、3 3常量和变量 5 日期常量日期 Date 型数据按8字节的浮点数来存储 表示日期范围从公元100年1月1日 9999年12月31日 而时间范围从0 00 00 23 59 59 一种在字面上可被认作日期和时间的字符 只要用号码符 括起来 都可以作为日期型数值常量 例 09 02 99 January4 1989 2002 5 414 30 00PM 都是合法的日期型常量 3 3常量和变量 二 符号常量在程序中 某个常量多次被使用 则可以使用一个符号来代替该常量 这样不仅在书写上方便 而且有效地改进了程序的可读性和可维护性 VB中使用关键字Const声明符号常量 其格式如下 Const常量名
8、 As类型 常数表达式或 Const常量名 类型符号 常数表达式例如 ConstPIAsDouble 3 1415926535等价于 ConstPI 3 1415926535 3 3常量和变量 例如 要将文本框Text1的前景颜色设置为红色 可以使用下面的语句 Text1 ForeColor vbRed这里的vbRed就是系统常量 这比直接使用16进制数来设置要直观得多 三 系统常量VB系统提供的应用程序和控件的系统定义常数 它们存放于系统的对象库中 在 对象浏览器 中的VisualBasic VB 和VisualBasicforapplications VBA 对象库中列举了VisualBa
9、sic的常数 3 3常量和变量 一 变量的命名规则1 以字母或汉字开头 后可跟字母 数字或下划线组成 3 变量名最长为255个字符 3 VB中不区分变量名的大小写 不能使用VB中的关键字 4 字符之间必须并排书写 不能出现上下标以下符是合法的变量名 a x x3 BOOK 1 sum5以下标识符是非法的 3s以数字开头s T出现非法字符 3x以减号开头bowy 1出现非法字符 减号 if使用了VB的关键字 3 3 2变量 二 变量声明1 用Dim语句显式声明变量形式 Dim变量名 AS类型 Dim变量名 类型符 例 DimabAsinteger sumAssingle等价于Dimab sum
10、3 3常量和变量 下面是一个很简单的程序 其使用的变量a b Total都没有事先定义 PrivateSubForm Click Total 0a 10 b 20Total a bPrint Total TotalEndSub 3 隐式声明VisualBasic允许用户在编写应用程序时 不声明变量而直接使用 系统临时为新变量分配存储空间并使用 这就是隐式声明 所有隐式声明的变量都是Variant数据类型 VisualBasic根据程序中赋予变量的值来自动调整变量的类型 例如 3 3常量和变量 3 强制显式声明 OptionExplicit语句 良好的编程习惯都应该是 先声明变量 后使用变量 这
11、样做可以提高程序的效率 同时也使程序易于调试 VisualBasic中可以强制显式声明 可以在窗体模块 标准模块和类模块的通用声明段中加入语句 OptionExplicit 3 3常量和变量 3 4运算符和表达式 例 5 2 10mod10 9 3 2 2结果是 11 ia 3 3 4 1 算术运算符与算术表达式 1 算术运算符 3 算术表达式 书写中需注意的问题 1 运算符不能相邻 例a b是错误的 2 乘号不能省略 例x乘以y应写成 x y 3 括号必须成对出现 均使用圆括号 4 表达式从左到右在同一基准并排书写 不能出现上下标 5 要注意各种运算符的优先级别 为保持运算顺序 在写VB表达
12、式时需要适当添加括号 若用到库函数必须按库函要求书写 如 3 4运算符和表达式 b sqr b b 4 a c 2 a a b a b 3 4 2 字符串运算符与字符串表达式字符串运算符有 功能是字符串连接例如 ABCD EFGHI 结果为 ABCDEFGHI VB 程序设计教程 结果为 VB程序设计教程说明 当连接符两旁的操作量都为字符串时 上述两个连接符等价 它们区别是 连接运算 两个操作数均应为字符串类型 连接运算 两个操作数既可为字符型也可为数值型 当是数值型时 系统自动先将其转换为数字字符 然后进行连接操作 3 4运算符和表达式 例 100 123 结果为223 100 123 结果
13、为100123 Abc 123 出错 100 123 结果为100123100 123 结果为100123 Abc 123 结果为Abc123 Abc 123 结果为Abc123 注意 使用运算符 时 变量与运算符 之间应加一个空格 这是因为符号 还是长整型的类型定义符 如果变量与符号 接在一起 VB系统先把它作为类型定义符处理 因而就会出现语法错误 3 4运算符和表达式 3 4 3关系运算符与关系表达式 比较两个运算量之间的关系 关系表达式的运算结果为逻辑量 若关系成立 结果为True 若关系不成立 结果为False VB中的关系运算符如下表所示 3 4运算符和表达式 关系运算的规则如下 1
14、 当两个操作式均为数值型 按数值大小比较 2 字符串比较 则按字符的ASCII码值从左到右一一比较 直到出现不同的字符为止 例 ABCDE ABRA 结果为False 3 数值型与可转换为数值型的数据比较 如 29 189 按数值比较 结果为False 4 数值型与不能转换成数值型的字符型比较 如 77 sdcd 不能比较 系统出错 5 Like 运算符是VB6 0新增加的 其使用格式为 str1Likestr2 3 4运算符和表达式 3 4 4逻辑运算符与逻辑表达式逻辑运算符 Not And OrXorEqvImp 3 4运算符和表达式 说明 1 逻辑运算符的优先级不相同 Not 逻辑非 最
15、高 但它低于关系运算 Imp 逻辑蕴含 最低 2 VB中常用的逻辑运算符是Not And和Or 它们用于将多个关系表达式进行逻辑判断 例如 数学上表示某个数在某个区域时用表达式 10 X 10AndX 20如果写成如下形式将是错误的 10 x 20或10 xOrx 20 3 4运算符和表达式 例 用人单位招聘秘书 年龄小于40岁 女性 学历专科或本科 写成条件VB的表达式 年龄 39性别 女 学历 专科 学历 本科 3 4运算符和表达式 And Or And 3 4 5日期型表达式日期型数据是一种特殊的数值型数据 只能有下面3种情况 1 一个日期型数据可以相减 DateB DateA结果是一个
16、数值型整数 两个日期相差的天数 例如 05 08 2002 05 01 2002 其结果为数值 73 一个日期型数据 DateA 与一数值数据 N 可作加法运算 DateA N其结果仍是一个日期型数据 3 一个日期型数据 DateA 与一数值数据 N 可作减法运算 DateA N其结果仍是一个日期型数据 例如 05 08 2002 7 3 4运算符和表达式 3 4 6运算符的执行顺序 表达式中出现了多种不同类型的运算符时 其运算符优先级如下 算术运算符 字符运算符 关系运算符 逻辑运算 说明 1 当一个表达式中出现多种运算符时 首先进行算术运算符 接着处理字符串连接运算符 然后处理比较运算符
17、最后处理逻辑运算符 3 可以用括号改变优先顺序 强令表达式的某些部分优先运行 括号内的运算总是优先于括号外的运算 对于多重括号 总是由内到外 3 4运算符和表达式 VB提供了上百种内部函数 库函数 要求掌握这些常用函数的功能及使用 调用方法 函数名 参数列表 有参函数函数名无参函数说明 1 使用库函数要注意参数的个数及其参数的数据类型 2 要注意函数的定义域 自变量或参数的取值范围 例如 sqr x 要求 x 0 3 要注意函数的值域 如 exp 23773 的值就超出实数在计算机中的表示范围 3 5常用内部函数 1 数学函数常用的数学函数有 Abs N Cos N Sin N Exp N L
18、og N Sqr N Sgn N 说明 1 在三角函数中的自变量是以弧度为单位 如 sin300sin 3 14159 180 30 3 5常用内部函数 2 Abs x 返回x的绝对值 3 Exp x 返回e的指定次幂 即ex 4 Log x 返回x的自然对数 5 符号函数Sgn x 根据x值的符号返回一个整数 1 0或1 1x 0Sgn x 0 x 0 1x0 如果x 0则出错 3 5常用内部函数 2 转换函数说明 1 要区别两个取整函数int 和fix Fix N 为截断取整 即去掉小数后的数 Int N 不大于N的最大整数 N 0与int N 相同 当N 0时 int N 与fix N
19、1相等 例如 Fix 9 59 9 Int 9 59 9Fix 9 59 9 Int 9 59 10思考 如何实现四舍五入取整 2 Asc Abcd 值为 65 只取首字母的Ascii值 3 Val abc123 值为 0 Val 1 2sa10 值为1 2注意 Val 函数只将最前面的数字字符转换为数值 3 5常用内部函数 3 字符串操作函数 1 删除空格函数Ltrim x 返回删除字符串x前导空格符后的字符串 Rtrim x 返回删除字符串x尾部空格符后的字符串 Trim x 返回删除前导和尾随空格符后的字符串 2 取子串函数Left x n 返回字符串x前n个字符所组成的字符串 Righ
20、t x n 返回字符串x后n个字符所组成的字符串 Mid x m n 返回字符串x从第m个字符起的n个字符所组成的字符串 3 5常用内部函数 3 字符串操作函数 3 Len x 返回字符串x的长度 如果x不是字符串 则返回x所占存储空间的字节数 4 Lcase x 和Ucase x 分别返回以小写字母 大写字母组成的字符串 5 Space n 返回由n个空格字符组成的字符串 6 Instr x y 字符串查找函数 返回字符串y在字符串x中首次出现的位置 如果y不是x的子串 即y没有出现在x中 则返回值为0 3 5常用内部函数 3 字符串操作函数例 len Thisisabook 15Left
21、ABCDEFG 3 ABC Right ABCDEFG 3 EFG Mid ABCDEFG 2 3 BCD Ucase ABcd ABCD Lcase ABcd abcd Trim Abcd ABcd String 5 A AAAAA InStr 2 ABCDEFGEF EF 5 第一次出现的位置 3 5常用内部函数 4 日期 时间函数 1 Date 返回系统当前日期 2 Time 返回系统当前时间 3 Minute Now Minute Time 返回系统当前时间 hh mm ss 中的mm 分 值 4 Second Now Second Time 返回系统当前时间 hh mm ss 中的s
22、s 秒 值 3 5常用内部函数 5 随机函数Rnd与Randomize语句 1 随机函数RndRnd函数可以不要参数 其括号也省略 返回 0 1 即包括0 但不包括1 之间的双精度随机数 若要产生1 100的随机整数 则可通过下面的表达式来实现 Int Rnd 100 1 包括1和100Int Rnd 99 1 包括1 但不包括100产生 N M 区间的随机数的VisualBasic表达式 Int Rnd M N 1 N 3 5常用内部函数 2 Randomize语句该语句的作用是初始化VB的随机函数发生器 为其赋初值 可使Rnd产生相同序列的随机数 Randomize语句使用形式 Rando
23、mize Seed 其中 Seed是随机数生成器的种子值 若省略 系统将计时器返回的值作为新的种子值 例如 下段程序每次运行 将产生不同序列的20个 10 99 之间的随机整数 RandomizeFori 1To20PrintInt Rnd 90 10 NextiPrint 3 5常用内部函数 本章小结 VisualBasic的数据类型分为标准类型和自定义类型两大类 图2 2VisualBasic的数据类型 本章小结 VisualBasic有4种运算符 算术运算符 连接运算符 关系运算符 逻辑运算符 由运算符 括弧 内部函数及数据组成的式子称为表达式 VisualBasic表达式的书写原则 1 表达式中的所有运算符和操作数必须并排书写 2 数学表达式中省略乘号的地方 在VisualBasic表达式中不能省 3 要注意各种运算符的优先级别 为保持运算顺序 在写VisualBasic表达式时需要适当添加括号 若要用到库函数 必须按库函数要求书写 VisualBasic提供了上百种内部函数也称库函数 用户需要掌握一些常用函数的功能及使用方法 VisualBasic函数的调用只能出现在表达式中 目的是使用函数求得一个值