VB6程序设计 下载本文

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