VB6程序设计
3、比较运算符
比较运算符,亦称关系运算符,被用作两个表达式之间的比较操作,结果是一个布尔类型的量。
P59表4.5.3列出了VB中的比较运算符。 4、逻辑运算符
逻辑运算符用作逻辑类型表达式之间的逻辑操作,结果一般是一个布尔类型的量。
P60表4.5.4列出了逻辑运算符及它们运算的结果。 5、位运算符
位运算符用于实现对操作数的二进制位操作。VB使用逻辑运算符作为位运算符,分别被称为按位取反(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、按位相等(EQV)和按位蕴含(IMP)。
4.5.2 表达式
VB中的表达式是由常量、变量、运算符、函数和圆括号组成的有意义的式子。
根据表达式结果的数据类型,可把表达式分为数值表达式、字符表达式和逻辑表达式等。
在书写VB中的表达式时应注意以下几点:
? 优先顺序从高到低排列为:函数-算术运算-比较运算符-逻辑运算符 ? 使用圆括号可明显地反映运算顺序或改变原定的优先顺序
? 如有必要,应使用类型转换函数对表达式中操作数的数据类型进行转
换,而尽可能不用VB的数据类型自动转换功能,以免不必要的错误
4.6 过程
过程是构成程序的逻辑模块,一般能完成一个相对独立的功能。利用过程能使程序结构模块化,以便于程序的开发、调试和维护;同时,利用过程还能实现多个程序对它的共享,可降低程序设计的工作量,提高软件开发的工作效率。
在VB中有3种过程:Sub过程、Function过程和Property过程。
4.6.1 Sub过程
Sub过程,亦称为子过程,是实现某一特定功能的代码段。它或者由程序调用,或者由事件触发,没有返回值。
Sub过程的语法是:
[Private|Public][Static] Sub Procedurename(arguments) ?过程头 statements ?过程体 End Sub ?过程尾
13
第四章 VB6编程基础
子过程可出现在窗体模块、标准模块和类模块中。在VB中子过程被分为通用过程和事件过程两类。
通用过程出现在模块的通用段中,它必须在程序中通过语句来调用。 例(见程序EX2)。
事件过程主要出现在窗体模块的窗体段和各控件段中,也可以出现在类模块的类段中。事件过程是由对象的事件所触发调用的。
事件过程的过程名。
4.6.2 Function过程
Function过程,亦称为函数过程,它是实现某一数据处理功能并返回处理结果的代码段。
Function过程的语法:
[Private|Public] [Static] Function functionname(arguments) [As type] statements End Function 例:
Private Function Hypotenuse(A As Integer,B As Integer) As Double Hypotenuse=Sqr(A^2+B^2) End Function
调用Function过程的方法和数学中使用函数的方法一样,即在表达式中可以通过使用函数名,并在其后用圆括号给出相应的参数列表来调用一个Function过程。也能像调用Sub过程那样调用函数。
例:
Y=Hypotenuse(3,4) Call Year(Now) Year Now
当用这种方法调用函数时,VB放弃该函数的返回值。
4.6.3 VB过程的参数传递
1.参数的按值传递和按地址传递
在过程定义中,按值传递的形式参数前要带有关键字ByVal。例如,下列过程中的参数x和y都是被声明为调用时按值传递的参数。
Private Sub Change1(ByVal x As Integer,ByVal y As Integer) Dim intTemp As Integer intTemp=x:x=y:y=intTemp End Sub
要在过程定义中声明按地址传递(缺省方式)的形式参数,应加上关键字ByRef,例如:
Private Sub Change2(ByRef m As Integer,ByRef n As Integer) Dim intTemp As Integer IntTemp=m:m=n:n=intTemp End Sub
14
VB6程序设计
例:见2#0403
2.数组参数的传递
VB的过程中允许以数组作为参数。在使用时应注意: ? 数组参数只能按地址传递,而不能按值传递。
? 在形式参数表和实在参数表中,数组参数要忽略维数声明。 例:编写求一维数组中所有元素之和的程序。 程序如下:
Private Sub Form_Click()
Dim a(1 To 5) As Integer, k As Integer For k = 1 To 5 a(k) = k + 1 Next k
Print \End Sub
Private Function ArrSum(x() As Integer) As Integer Dim i As Integer, t As Integer t = 0
For i = LBound(x, 1) To UBound(x, 1) t = t + x(i) Next i
ArrSum = t End Function 这里,系统内部函数LBound和UBound分别求数组指定维数的下界和上界,其中维数可缺省(指一维数组的唯一的一维)。
在VB过程的参数表中,可使用关键字Optional建立可选参数,也可使用关键字ParamArray声明不定数量的参数。
4.6.4 过程的递归
VB中的过程可以是递归的,也就是说,过程可以调用自己来完成某个特定的任务。
例如,计算阶乘的函数;求两个数的最大公约数等。
注意:构成递归要有两个条件,一是要有确定的递归结束条件和结束值,二是具有能驱向递归结束条件的递归形式表示。
4.6.5 系统内部函数
VB提供了丰富的系统内部涵数,可在程序代码中直接调用。这些函数按处理功能可分为数学函数、字符串函数、日期函数、类型转换函数、格式输出函数和交互函数等。(注意:函数int()与函数fix()的区别)
格式输出函数Format可使数值、日期或字符串按指定的格式输出,通常用Print方法中。
交互函数MsgBox和InputBox可分别打开一个消息对话框和输入对话框,格式:
15
第四章 VB6编程基础
MsgBox(prompt[,buttons][,title]) InputBox(prompt[,title][,default]) 例:
intAB=MsgBox(“是否继续?”,vbYesNo+vbExclamation,”消息框”) strAB=InputBox(“请输入姓名”,”输入框”)
4.6.6 常用方法
从本质上说,方法就是一种过程,是面向对象的过程。 常见的方法有:Cls、Print、Move等。
4.7 VB基本语句
4.7.1 赋值语句
赋值语句的语法:
[Let] varname=expression
4.7.2 选择语句
选择语句,也称条件分支语句。 1.If语句 格式:
(1) If 条件 Then 语句 (2) If 条件 Then
语句 End If
(3) If 条件 Then 语句1 Else 语句2 (4) If 条件 Then
语句1 Else
语句2 End If
2.Select Case语句
Select Case语句,亦称情况语句,语法如下:
Select Case 测试表达式 Case 表达式列表1 语句组1
Case 表达式列表2 语句组2 …… [Case Else
16