一、代码编写
1.高度智能化编辑特性
- 自动语法检查
当一行代码输入完成并将光标移动到其他行时,VB将对该行代码进行语法检查。如果没有语法错误将进行自动格式编排;如果存在语法错误,屏幕会弹出错误信息框,提示错误的类型同时该行为变成红色。
- 自动格式编排
VB会对输入完成且没有错误的代码进行自动的格式编排。对VB中的关键字、注释字符、非关键字等语言要素采用不同的颜色以示区分,对VB中的所有关键字的第一个字母全部改为大写,其后变为小写,对各个语言要素之间加上适当的空格。
- 自动编码
自动编码功能体现在两个方面,一是“自动列出成员”功能:当在代码窗口输入某个对象的名称时,屏幕会自动列出相应对象的所有属性和方法。键入属性或方法名称的前几个字母便可以从列表中选择该名称,按下Tab键即可完成属性名称的输入。这样,一方面大大加快了代码的输入速度,另一方面减少对属性名的记忆量。自动编码的另一个功能是“自动显示快速信息”功能,即在输入合法语句或函数名称后,屏幕会显示该命令或函数的相应语法,专业可以根据提示完成相关参数的输入,减少了不必要的错误。
以上这些自动功能均可通过选择【工具】 → 【选项】 → 【编辑器/编辑器格式】菜单命令进行设置。
2.编码规则与注释
- 编码规则
- 代码输入时可以不区分大小写,由系统自动进行转换。
- 在同一行上可以书写多条语句,但语句间必须用“:”(英文冒号)分隔。
- 每行的字符最多1024个。为便于阅读和打印,可以将长语句分成多行,但必须在行尾加上续行符(空格再加上下划线“ _ ” ),而且续行符后不能再加注释。
- 对数字出了可以默认的十进制表示外,还可以用其他的进制,但是必须加上前缀说明:十六进制用&H(&H9A),八进制&O(如&O76).
- 对过程、循环和分支的程序段一般应进行缩排处理,从而便于阅读和调试。
- 注释
- 有利于程序阅读、维护和调试。VB中的注释是以“'”(单引号)开始,如:
- 在代码行尾部加,但不能出现在续行符后。
- 注释单独为一行或几行,每行前都必须有注释符。
- 利用编辑工具栏对某个程序段整个加上注释。方法是先选中需要注释的代码段,单击编辑工具栏中的“块注释”按钮,如要取消注释,只要再单击“取消块注释”按钮即可。
二、数据类型
| 数据类型 | 关键字 | 类型符 | 前缀 | 占字节数 | 应用 |
|---|---|---|---|---|---|
| 字节型 | Byte | 无 | byt | 1 | 存储二进制数据,范围较小,不能存放负数 |
| 逻辑型 | Boolean | 无 | bln | 2 | 只有True和False两种取值,用于逻辑判断 |
| 整型 | Integer | % | int | 2 | 保存整数,取值范围小,用于不带小数的数据 |
| 长整型 | Long | & | ing | 4 | 取值范围大于整型,其余同上 |
| 单精度型 | Single | ! | sng | 4 | 保存浮点实数,运算可能会产生误差 |
| 双精度型 | Double | # | dbl | 8 | 取值范围大于单精度型,其余同上 |
| 货币型 | Curency | @ | cur | 8 | 保存定点实数,主要用于货币计算 |
| 日期型 | Date | 无 | dtm | 8 | 保存日期和时间数据 |
| 字符型 | String | $ | str | 可变 | 保存字符串数据,可分为定长和变长两种 |
| 对象型 | Object | 无 | obj | 4 | 存储32位的地址数据,该地址可引用应用程序中的对象 |
| 变体型 | Variant | 无 | vnt | 可变 | 可用保存所有系统定义的数据类型,主要是用作未定义变量的默认数据类型,其数据的处理完全取决于上下文 |
说明
- 用于处理数值的数据最多,共有5种:字节型、整型、长整型、单精度型和双精度型。
- 对字符数据类型String而言,一般情况下其种保存的字符串长度是可变的,当然也可以使用定长的字符串。例如:
Dim Str1 As String '声明变长字符串
Dim Str2 As String *20 '声明长度为20的定长字符串
三、常量和变量
1.常量
- 常量也具有不同的数据类型,不同的数据类型的常量表示形式是不同的。
- 数值型常量是由正负号、小数点和数字构成。对于十进制数的形式表示与日常使用形式是基本相同,如:123,-45.56。但是对于十进制数应该加上表示进制的前缀 &H 和 &O。
- 字符型常量必须用 "(双引号)括起来。比如:"Visual Basic"、"属性"等。
- 日期型常量的完整表示形式为“#月/日/年 时:分:秒 AM 或 PM#”,如#07/21/2001#
格式
[Public|Private] Const constname [As type] = expression
- constname 为常量名称
- type 为类型
- expression 为合法的VB表达式。
- Public|Private 为作用范围,Public为全局常量,Private为模块级常量。
例如:
Const conPi = 3.14159
Public Const conUser As String = "Admin"
2.变量
(1)变量的命名 为了便于在程序中加以区分,每个一变量都必须有个唯一的名字,给变量命名时要遵守一下规定:
- 必须以字母开头,有字母、数字和下划线构成,长度不超过255个字符,大小写不区分。
- 不能与VB的保留字重名,如For、Do、End、Sub等
(2)变量是声明
Dim:Dimension(大小,尺寸;(空间的)维度;范围,规模;方面,部分)
- 隐式声明
Private Sub Form_Load()
TestToday = Now()
Debug.Print TestToday
End Sub
- 显式声明
Private Sub Form_Load()
Dim str As String
End Sub
四、运算符与表达式
1.运算符
(1)算术运算符
| 符号 | 含义 | 示例(a=3) | 结果 |
|---|---|---|---|
| ^ | 乘方 | a ^ 2 | 9 |
| - | 负数 | -a | -3 |
| * | 乘 | a * a | 9 |
| / | 除 | 10 / a | 3.333 |
| \ | 整除 | 10 \ a | 3 |
| Mod | 取余 | 10 Mod a | 1 |
| + | 加 | 10 + a | 13 |
| - | 减 | a - 10 | -7 |
说明:算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则强制转换为数值类型后再运算。
(2)字符串运算符
&(And)
| 区别 | 示例 | 结果 |
|---|---|---|
| 先将操作数转换成字符,然后再连接 | 12 & 34 | 1234 |
| 先将操作数转换成字符,然后再连接 | 12 & "ab" | 12ab |
使用时&符号两边需要增加空格
+(加号)
| 区别 | 示例 | 结果 |
|---|---|---|
| 两者都是字符串,直接连起来 | "12" + "34" | 1234 |
| 两者都为数字型,算术加法运算 | 12 + 34 | 46 |
| 一个为数字字符型,一个为数字型,将字符型转换为数字型,然后算术加法运算 | "12" + 34 | 46 |
| 一个为非数字字符型,一个为数值型,则出错 | "ab" + 34 | 出错 |
(3)逻辑运算符
| 运算符 | 含义 | 说明 |
|---|---|---|
| Not | 取反 | 当操作数为假时,结果为真 |
| And | 与 | 两边都为真才是真 |
| Or | 或 | 两边都为假才是假 |
(4)关系运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
| = | 等于 | "ABCDE" = "ABR" | False |
| 大于 | "ABCED" > "ABR" | False | |
| >= | 大于等于 | "bc" >= "大小" | False |
| < | 小于 | 23 < 3 | False |
| <= | 小于等于 | "23" <= "3" | True |
| <> | 不等于 | "abc" <> "ABC" | True |
(5)ASCII码
2.表达式
由变量、常量、函数和运算符按一定的规则构成的一个字符序列就是表达式,每个表达式都有一个运算结果,运算结果的类型取决于参与运算的数据类型和运算符。以下是几个典型的表达式实列
a*b/(c+d) '算术运算,结果为数值型
strB$<>"Visual Basic" '关系运算,结果为逻辑型
intAge<19 And sinTotal > 285 And (kccj1 = 100 Or kccj2 = 100) '综合运算,结果为逻辑型
3.小练习
输入半径r,设定常量pi=3.1414926,根据圆的周长公式L=2 * pi * r,面积公式S = pi * r * r进行计算,并输出。
五、数组
VB中将具有相同名字、下标值不同的一组变量称为数组变量,简称数组。
数组中每个变量称为数组元素,数组元素的表示方法为:数组名称(s1,s2……)。其中s1,s2等成为下标,只有一个下标的数组称为一维数组,有两个下标的数组称为二维数组。下标只能是整型数。VB中的数组有两种,一种是静态数组,另一种是动态数组。数组必须先声明后使用。数组的声明既可以在模块的声明段声明,也可以在过程中声明。
1.静态数组
所谓静态数组是指数组的维数与下标的范围在声明时已经确定了。声明静态数组使用的语句与声明变量的语句类似。 列如:
Dim sngCj(45) As String '声明用于存放学生成绩、具有46个元素的一维数组
Dim intA(3,4) As Integer '声明一个二维的整型数组
Dim Birthday(1 To 10) As Date 'Birthday是一个下标从1到10的Date型数组
2.动态数组
动态数组是指在声明数组时不指明小标大小(省略号中的下标),当需要使用时,再用ReDim语句重新定义其大小。建立动态数组的步骤如下:
- 在模块或过程中声明动态数组如下
Dim intRs() Integer
- 在需要使用该数组的过程中分配实际的元素个数。
ReDim intRs(x+1) 'x是整型变量
- 数组的使用 数组在声明后即可以使用,数组的使用主要涉及两方面的问题:一是数组元素的赋值,二是数组元素的访问。实际上这是一个如何访问数组中元素的问题。要访问数组中的元素应该使用如下格式:数组名(下标值)。
Private Sub Form_click()
Dim intA(10) As Integer
Dim i As Integer
For i = 0 To 10
intA(i) = 1 '对每个数组元素赋值初始值1
Print intA(i) '输出数组元素的值,也即数组元素,将结果输出到当前窗体
Next i
End Sub
3.小练习
创建一个大小为5的数组,分别为“班级一”,“班级二”,“班级三”,“班级四”,“班级五”,然后输入编号取出相应的班级。
思考
1.常用数据类型分别有哪些?
2.如何定义变量和常量?
3.算术运算符有哪一些,分别是什么作用?
4.逻辑运算符有哪一些,分别是什么作用?
5.关系运算符有哪一些?
6.字符串运算符有哪一些?
7.如何定义数组?