VFP6.0程序设计第2章-Visual-FoxPro-6.0-编程基础_第1页
VFP6.0程序设计第2章-Visual-FoxPro-6.0-编程基础_第2页
VFP6.0程序设计第2章-Visual-FoxPro-6.0-编程基础_第3页
VFP6.0程序设计第2章-Visual-FoxPro-6.0-编程基础_第4页
VFP6.0程序设计第2章-Visual-FoxPro-6.0-编程基础_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.2数据容器2.3操作符和表达式2.4命令和函数2.5流程控制语句2.6程序文件第二章VisualFoxPro6.0编程基础2.1数据类型2.1数据类型VisualFoxPro6.0的数据类型共有如下14种:字符型、货币型、数值型、浮点型、日期型、日期时间型、双精度型、整型、逻辑型、备注型、通用型、字符型(二进制)、备注型(二进制)、对象型

2.1.1字符型(Character)

字符型数据是由字母(包括汉字)、数字、空格等任意ASCII码字符组成,其长度为0~254,每个字符占用一个字节。

字符型常量是用单撇号或双撇号括起来的字符串。如:“abc”、’12c’、‘中国’等。

2.1.2货币型(Currency)

当使用人民币或美元等货币数据时,可采用货币型数据类型。货币型数据的取值范围是:-922337203685477.5808~922337203685477.5807当小数位超过四位时系统自动进行四舍五入处理。每个货币型数据占用8个字节。

2.1.3日期型(Date)

日期型数据的格式为“yyyy-mm-dd”。其中:yyyy代表年,mm代表月,dd代表日。

日期型数据还可以表示为“mm/dd/yyyy”等格式。

例如:{^2002-05-23}是正确的日期型常量。

2.1.4日期时间型(Datetime)

除了能够保存日期还能够保存时间,日期时间型数据存储格式为:yyyymmdd[hh[:mm[:ss]][a|p]]。其中yyyy代表年,mm代表月,dd代表日,hh代表小时,mm代表分钟,ss代表秒,a|p代表上午或下午。例如:{^2002-05-2310:20:33}是正确的日期时间型常量。

注意:[]中的数据可以省略。

2.1.5逻辑型(Logical)

该数据类型只有真(Ture)和假(False)两种状态。具体输入逻辑型数据时,逻辑真输入“Y”或“T”,逻辑假输入“N”或“F”。

2.1.6数值型与浮点型(NumericandFloat)

当存储诸如年产量、月工资等数值型数据时,可用数值型数据类型。数值型数据由数字0~9,一个符号(+或-)和一个小数点(.)组成。其长度为1~20位,每个数据占8个字节。

2.1.7双精度型(Double)

具有比数值型更高的精度,用于数据表中字段的定义,采用固定存储长度的浮点数形式。

双精度型数值的取值范围:

+/-4.94065645841247E-324~+/-1.79769313486232E308

每个双精度数据占8个字节。

2.1.8整型(Integer)

当存储诸如“职工人数”等数据时,可用整型数据类型。整型数值没有小数点部分,只能用于表中字段的定义。其取值范围是:

-2147483647~2147483646,整型字段占4个字节。

2.1.9备注型(Memo)

当存储诸如“工作简历”等数据时,可用备注型数据类型。备注型只能用于表中字段的定义,备注内容的多少只受内存可用空间的限制。备注型字段的内容不能直接存放于.dbf文件中,系统将备注的内容存放在扩展名为.fpt的文件中。

2.1.10通用型(General)

通用型是用途十分广泛的数据类型,当存储诸如“照片”、“Word文档”、“Excel工作簿”等OLE对象时,可用通用型数据类型。该类型只能用于表中字段的定义。通用型数据的多少只受内存可用空间的限制。

2.1.11二进制数据类型

二进制数据类型包括:字符型(二进制)和备注型(二进制)两种。用于存储任意不经过代码页修改的字符型数据或备注型数据。

2.1.12对象型(Object)

对象型是用于存储类的具体实例的数据类型。对象型的数据可以存取表单、控件等系统对象,还可以存取用户自定义对象。

2.2数据容器数据容器包括存储数据的变量、数组、字段、记录、对象等,是数据的载体。

2.2.1常量

2.2.4字段

2.2.2变量

2.2.5记录

2.2.3

数组

2.2.6对象

2.2.1常量

在整个操作过程中其值保持不变的量称为常量。

1.常量的类型

常量有数值型、字符型、日期型、逻辑型和货币型等多种类型。例如:{^2002/08/30}是日期型常量。

(1)数值型常量

用整数、小数、科学计数法表示的数都是数值型常量。例如:3.14159265、1.234、-200、0.313233E3。

(2)字符型常量

用双撇号、单撇号或方括号等定界符括起来的字符串。例如:“计算机”、‘110’、[XYZ]。VFP的字符串的最大长度为254个字符。若字符串中含有定界符,则须用另一种定界符括起来。例如:[Iama‘student’]。

(3)日期型常量

日期型常量必须用花括号括起来。例如:{^10/12/2002};{^05/23/200212:23am}。

空白的日期可表示为{}或{/},空白的日期时间可表示为{/:}。在日期数据的输入时,若使用^符号表示使用严格的日期格式,按照YMD(即年、月、日)的格式来解释日期和日期时间。例如:{^2002/08/30}。

(4)逻辑型常量

逻辑型常量只有逻辑真和逻辑假两种。.T.、.t.、.Y.、.y.都表示逻辑真;.F.、.f.、.N.、.n.都表示逻辑假。

(5)货币型常量

货币型常量以$或¥符号开头,并四舍五入至小数四位。例如:货币型常量$123.45678,计算结果为$123.4568。

2.常量的定义

在程序中可用伪编译指令#DEFINE定义常量。

例如:#DEFINENOEDIT“表中没有记录,不可编辑”

定义了NOEDIT常量之后,在源代码中就可使用NOEDIT。在编译之后,凡是出现NOEDIT的地方,均用字符串“表中没有记录,不可编辑”取代。

用#DEFINE定义的常量必须用伪编译指令#UNDEF取消,下面的语句取消了上述的定义。

例如:#UNDEFNOEDIT

2.2.2变量

变量是一种其值可以发生变化的数据。VisualFoxPro中的变量有两种:字段变量和内存变量。字段变量也称为字段名变量,是用户已定义的数据库结构中的任一数据项。本书如没有特别说明,常指内存变量。内存变量是用变量名来表示的,变量名是内存中存储一个数据的位置名称,可理解为房间名称,而数据放在房间中。在这个存储位置中存放的数据通过这个名称来读和写。

1.内存变量的命名

内存变量的命名与字段、文件的命名有所不同,其规则为:以字母或汉字或下划线开头;由字母、数字、下划线组成;至多128个字符可与系统保留字同名。所谓系统保留字就是VFP语言中使用的字,例如:USE命令中的USE就是一个系统保留字。

2.内存变量的赋值

内存变量的赋值有如下几种:

(1)利用赋值号“=”赋值;

(2)利用STORE命令赋值。

例2-1:在命令窗口中为内存变量V1、V2、V3、V4赋值。

在命令窗口中的赋值如图2-1所示。在图2-1中,第1条命令将“VisualFoxPro6.0”字符串给变量V1;第2条命令将表达式“5*6/3”值同时给变量V2,V3和V4。

图2-1使用赋值语句的命令窗口说明:

(1)内存变量赋值时定义了它的值及其数据类型。

(2)STORE语句可同时为多个内存变量赋值,各变量需用逗号

隔开,而采用“=”赋值仅可为一个内存变量赋值。

3.表达式值的显示命令

在命令窗口或程序中,可用“?\??<表达式表>”命令显示内存变量、表达式的值。

例2-2:在命令窗口中显示内存变量V1、V2、V3、V4的数值。

具体操作如图2-2所示。从图2-2可以看出:

?<表达式表>:在下一行显示表达式的内容;

??<表达式表>:在当前行显示表达式的内容。

说明:<表达式表>中的<>是必须要输入的,表达式表是指可用逗号隔开的多个表达式。图2-2在命令窗口中显示内存变量的值4.内存变量的定义

在VisualFoxPro6.0的程序中可用LOCAL、PUBLIC和

PRIVATE命令来定义变量的作用范围。

(1)用“LOCAL变量名”定义的变量为局部变量,它只能在当前程序中使用,而不影响其他程序同名变量的原始值。(2)用“PUBLIC变量名”定义的变量为全局变量,在本次VisualFoxPro程序运行期间,所有程序都可以使用这些全局变量。

(3)用“PRIVATE变量名”定义的变量为私有变量。

2.2.3数组

数组是一系列数据值的集合,其中每个数据值称为数组中的一个元素,而且每个元素都可以通过一个数值下标来被引用。数组中的元素可以是不同的数据类型。

1.数组的定义

数组可以理解为特殊的内存变量,在使用前必须定义,其定义的方式有:

(1)DECLARE数组名定义数组为私有数组,它只能在当前程序中使用,而不影响其他程序同名数组的原始值。例如:DECLAERABC(3)&&定义了数组名为abc的一维数组,其下标的上界为3。

(2)DIMENSION数组名定义的数组为私有数组,含义同上。

(3)用PUBLIC数组名定义的数组为全局数组,在本次VisualFoxPro运行期间,所有程序都可以使用全局数组。例如:PUBLICxyz(2,3)&&定义了数组名为xyz的二维数组。

(4)用LOCAL数组名定义的数组为局部数组。

有关数组的说明:(1)系统规定数组的下标的下界为1。例如:通过DECLAREabc(3),定义的数组abc有3个数组元素,分别为abc(1)、abc(2)、abc(3)。(2)VFP6.0最多可定义65000个数组,且数组最多可包含65000个元素。

2.数组的赋值

(1)VFP6.0允许同一数组的不同元素可取不同数据类型,而且同一元素的前、后类型也允许改变。

(2)数组的赋值与内存变量的赋值基本相同,可为数组元素单个地赋值,也可以给整个数组的各个元素赋以相同的值。

2.2.4字段

数据是以二维表的方式在数据库中存储,二维表的列可理解为字段(Fields)。字段名的定义与内存变量名的定义类同,可用英文字母或汉字定义,不超过10个字符。

字段名可理解为变量,称字段变量。例如:在具有姓名、性别、出生日期等字段的人员登记表中,姓名是字段名,称为字段变量,随着记录指针的移动,姓名所代表的值是变动的。

字段数据类型的定义可有13种,通常情况下,编号、姓名、性别等字段定义为字符型;工资字段定义为数值型;出生日期定义为日期型等等。

2.2.5记录

当数据在二维表上存储时,二维表中的行可理解为记录(Records),记录是字段的集合,也是构成表的基本单位。一条记录最多可以有255个字段,同一个数据表中的记录具有相同的结构,即具有相同的字段名、字段类型、字段宽度等。一个二维表中的记录数最多可达到10亿条。

2.2.6对象

VisualFoxPro6.0的对象可以是窗口、表单、控件、用户自定义对象等。合理的运用对象,通过代码的重用、对象的继承,能够加快系统开发的进程。用户可以通过对象的事件、属性和方法来处理对象。

2.3操作符和表达式2.3.1操作符2.3.2表达式

2.3.1操作符

1.算术操作符2.关系操作符3.逻辑操作符4.字符操作符5.日期时间操作符6.类和对象操作符

1.算术操作符算术操作符的操作对象必须是数值,操作的结果也是数值。操作顺序是先乘方、再乘除与取余、后加减。同一级别的操作顺序为从左向右。算术操作符的意义及应用如表2-1所示。

2.关系操作符

关系操作符的操作对象的数据类型必须一致,操作比较的结果是逻辑值。数值型数据按数值大小进行比较;日期型数据按年、月、日的顺序进行比较;字符型数据按相应位置上两个字符的ASCII码的大小进行比较。表2-1算术操作符及应用举例操作符意义应用举例**,^乘幂

3**4,3^4

&&81

*,/乘,除

3*4/2&&6

%模运算(取余)

30%5&&0

+,_加,减

3+4-2&&5关系操作符的比较意义及其应用如表2-2所示。表2-2关系操作符比较意义及应用举例操作符意义应用举例<小于10<16&&.T.>大于10>16&&.F.=等于10=10&&.T.<>,#,!=不等于10<>12&&.T.<=小于等于10<=16&&.T.>=小于等于10>=8&&.T.==完全相等“a”==“b”&&.F.$包含于“zha”$”zha”&&.T.

表2-3逻辑操作符的意义及其应用举例

3.逻辑操作符

逻辑操作符的操作对象是逻辑值,运算结果也是逻辑值。若操作数不符合要求,会出现“操作符/操作数不一致”的错误提示。关系操作常用来描述某种条件,而逻辑操作常用来描述复合条件。若两个条件中只要有一个满足条件即可,则用OR运算;若两个条件中必须同时成立才算成立,则用AND运算;至于NOT则用于否定一个条件。逻辑操作符的含义及其应用举例如表2-3所示。

操作符意义应用举例.OR.逻辑或3>2.OR.4=5&&.T..AND.逻辑与3>2.AND.4=5&&.F..NOT.逻辑非.NOT.”BC”$”ABCD”&&.T.

4.字符操作符

字符操作符用于连接两个字符串,有“+”和“-”两个运算符,其含义和应用举例如表2-4所示。

5.日期时间操作符日期时间操作符有“+”和“-”两个,其含义和应用举例如表2-5所示。

表2-4字符操作符的意义及其应用举例

表2-5日期操作符的意义及其应用举例操作符意义应用举例+连接两个字符型数据‘a’+’b’&&’ab’-删除尾部空格后连接两个字符型数据‘a’-’b’&&’ab’操作符意义应用举例%+日期相加{05/16/2002}+10&&{05/26/2002}%-日期相减{05/16/2002}-10&&{05/06/2002}

6.类和对象操作符

类和对象操作符有“.”和“::”两个,其含义和应用举例如表2-6所示。

表2-6类和对象操作符的意义及其应用举例操作符意义应用举例.点操作符。用于对象符的意义及其应用举例Thisform.::作用域操作符。用于在子类中调用父类中调用父类的方法Thisform::click

2.3.2表达式1.算术表达式2.字符表达式3.日期表达式4.关系表达式5.逻辑表达式6.名称表达式

1.算术表达式

算术表达式是由算术操作符将数值型常量、数值型变量或数组元素、数值型字段、返回数值型数据的函数连接成的式子。例如:(11+22)*2/3&&结果应为22

2.字符表达式

字符表达式是由字符操作符将字符型常量、字符型变量或数组元素、字符型字段、返回字符型数值的函数连接成的式子。例如:“abc”+“def”&&结果应为“abcdef”

3.日期表达式

日期表达式是由日期操作符将日期(日期时间)型常量、日期(日期时间)型变量或数组元素、日期(日期时间)型字段、返回日期(日期时间)型数值的函数连接成的式子。

例如:{05/16/2002}+30&&结果应为{06/15/2002}{05/16/2002}-{05/16/2001}&&结果应为365

4.关系表达式

关系表达式是由关系操作符将数值型、字符型、日期型三种类型的常量、变量或数组元素、字段、函数连接构成的式子。例如:姓名=“张三”&&姓名为字符型字段

工资>1800&&工资为数值型字段

“ABCD”<=“CDEF”&&结果应为.T.

5.逻辑表达式

逻辑表达式是由逻辑操作符将逻辑型常量(.T.或.F.)、逻辑型变量或数组元素、逻辑型字段、返回逻辑型数据的函数、关系表达式连接的式子。

例如:性别=“女”.and.技术职称=“高级工程师”

&&性别、技术职称均为字符型字段

是否培训.or.出生日期<{10/01/1949}

&&是否培训为逻辑型字段;出生日期为日期型字段

6.名称表达式

这里的名称指数据库表文件名、字段名、表单名、对象名等。所谓名称表达式是指将名称存放到变量或数组元素中并将其用一对括号括起来。

例如:

STORE“NAME”TOVAR_NAME&&将字段名存入内存变量VAR_NAME中

REPLACE(VAR_NAME)WITH“张三”&&用“张三”替换当前记录的NAME字段,字段名NAME被存放到变量VAR_NAME中。

在使用REPLACE命令时名称表达式(VAR_NAME)将用字段名NAME代替变量。

2.4命令和函数2.4.1命令2.4.2函数

2.4.1命令

1.命令

VisualFoxPro6.0的命令由一个命令关键字开头,后面通常是被命令的对象构成的命令子句。2.命令书写有关约定

VisualFoxPro6.0中的命令不区分大小写,但为了程序的可读性,一般变量采用小写,系统关键字采用大写。例如:定义一个全局二维数组xyz(2,3),其书写格式如下:

PUBLICxyz(2,3)

3.VisualFoxPro6.0的文件命名方法

文件名由主文件名和扩展名两部分组成:主文件名最长由10个字符组成,可以包括字母、数字、下划线、连字符,但不能使用“*”、“?”、“/”等。但加入到了数据库中的表和字段名均可以为长文件名,最长为128个字符。扩展名由“.”加3个字母组成,表示文件类型。

4.命令构成的基本格式

1)VisualFoxPro6.0的一般语法格式:<命令动词>[<表达式表>][<范围>][FOR<条件>][WHILE<条件>][TOFILE<文件名>/TOPRINTER/TOARRAY<数组名>/TO<内存变量>][ALL[LIKE/EXCEPT<通配符>]][IN<别名>]可以将命令分为如下八个部分。

命令动词:它是VFP的命令名,用来指示计算机要完成的操作。表达式表:用来指示计算机执行该命令所操作的结果参数。范围:指定命令可以操作的记录集。范围有下列四种选择:

ALL:当前表中的全部记录。

NEXT<n>:从当前记录开始的连续N条记录。

RECORD<n>:当前表中的第N号记录。

REST:从当前记录开始到最后一条记录为止的所有记录。

FOR<条件>:它规定只对满足条件的记录进行操作。

WHILE<条件>:从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索。

TO子句:它控制操作结果的输出去向。

ALL[LIKE/EXCEPT<通配符>]:它指出包括或不包括与通配符相匹配的文件、字段或内存变量。

IN<别名/工作区>:它允许在当前工作区操作指定工作区。

例如:

(1)quit&&退出本系统

(2)usecustom&&打开名字为custom的数据库表

(3)listforname=“李明”&&显示名字为李明的记录

(4)replaceallpricewith1.3*price&&把当前数据库中所有记录的price字段都提高到1.3倍

2.4.2

函数

函数用来完成特定的功能,在VisualFoxPro中,系统提供了400多种函数,加强了VisualFoxPro语言的功能。

函数由函数名、参数和函数值构成。其中,函数名起标识作用;参数是自变量,用于在程序之间传递信息,一般以表达式的方式存在于函数的括号内;函数值是函数运算结束后的返回值。根据返回值类型的不同,函数可分为:

数值型函数

字符型函数

日期型函数

逻辑型函数

其他函数VFP有关函数的说明,均遵守如下约定:

•<>中的项目是必须输入的,不可省略;

•[]中的项目是可输可不输,可以省略;

•/具有或者的意思,其两端只能选一。

1.数值型函数

(1)ABS(<数值表达式>):求<数值表达式>的绝对值。

(2)SQRT(<数值表达式>):求<数值表达式>的平方根。

(3)INT(<数值表达式>):求<数值表达式>的整数部分。

(4)ROUND(<数值表达式1>,<数值表达式2>):<数值表达式1>四舍五入,保留<数值表达式2>位小数。

(5)MAX(<数值表达式1>,<数值表达式2>,…,<数值表达式n>):求N个数值表达式的最大值。

(6)MOD(<数值表达式1>,<数值表达式2>):返回<数值表达式1>除以<数值表达式2>所得的余数。

(7)RAND([<数值表达式>]):返回一个0-1之间的随机数。

2.字符型函数

(1)ASC(<字符表达式>):求字符的ASCII码值。

(2)CHR(<数值表达式>):从<数值表达式>表示的ASCII码返回字符。

(3)SUBSTR(<字符表达式>,<数值表达式1>,[,<数值表达式2>):返回<字符表达式>中第<数值表达式1>位起的长度为<数值表达式2>的子串。

(4)LEFT(<字符表达式>,<数值表达式1>):返回<字符表达式>左起长度为<数值表达式1>个字符的子串。

(5)RIGHT(<字符表达式>,<数值表达式>):返回<字符表达式>右起长度为<数值表达式>个字符的子串。

(6)LEN(<字符表达式>):求字符串的长度。

(7)AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]):返回字符串<字符表达式1>在<字符表达式2>中第<数值表达式>次出现的位置。

(8)ALLTRIM(<字符表达式>):删除字符表达式首尾的空格。

(9)UPPER(<字符表达式>):将小写字符大写。

(10)LOWER(<字符表达式>):将大写字符转换为小写。

(11)VAL(<字符表达式>):将字符串转换为数值。

3.日期型函数

(1)CTOD(<字符表达式>):将<字符表达式>转化成日期。

(2)DTOC(<日期表达式>):将<日期表达式>转化成字符串。

(3)TIME():返回系统当前日期。

(4)DATE():返回系统的当前日期。

(5)YEAR(<日期表达式>):返回<日期表达式>的年份。

4.逻辑型函数

(1)BOF([<数据库表>/<工作区>):记录指针指向第一条记录之前时返回.T.,否则返回.F.。

(2)EOF([<数据库表>/<工作区>):记录指针指向最后一条记录之后时返回.T.,否则返回.F.。

说明:<工作区>表示工作区号或工作区别名,用来指定工作区。

5.其他函数

(1)DBF([<工作区>]):返回工作区中打开表的名称。

(2)RECNO([<工作区>]):返回工作区中当前记录的记录号。

(3)TYPE(“<字符表达式>”):返回表达式类型,以N、C、D、L等表示。

(4)INLIST(<表达式1>,<表达式2>,[,<表达式3>…]):判断<表达式1>是否包含在后面的表达式中,若包含,则返回.T.,否则返回.F.。

2.5流程控制语句

2.5.1顺序结构2.5.2分支选择结构2.5.3循环语句

2.5.1顺序结构

VisualFoxPro6.0的程序从主体上来说都是顺序的,程序运行时按照语句排列的先后顺序,依次自动执行。

2.5.2分支选择结构

一个功能复杂的程序往往都有判断功能,而判断是靠程序实现的,VFP能用条件语句或多分支语句构成分支条件,并根据条件的不同而执行不同的程序段。

条件语句依据其简易程度可分成带ELSE与不带ELSE两种格式。

1.简单条件语句

其语句格式如下:

IF<条件表达式>

<语句序列>

ENDIF

简单条件语句的执行过程,如图2-3所示。计算机首先判断<条件表达式>的值,如果为真,则执行IF和ENDIF之间的语句序列(程序段);如果为假,则跳过IF和ENDIF之间的语句序列,执行ENDIF后面的语句。

图2-3简单条件语句框图图2-4带ELSE条件语句框图

2.带ELSE的条件语句

其语句格式如下:

IF<条件表达式>

<语句序列1>

ELSE

<语句序列2>

ENDIF

带ELSE的条件语句的执行过程如框图2-4所示。计算机首先判断<条件表达式>的值,如果为真则执行语句序列1,否则执行语句序列2,然后执行ENDIF后面的语句。

3.多分支条件语句

其语句格式如下:

DOCASE

CASE<条件表达式1>

<语句序列1>

CASE<条件表达式2>

<语句序列2>

CASE<条件表达式n>

<语句序列n>

[OTHERWISE<语句序列n+1>]

ENDCASE

执行多分支语句的过程如框图2-5所示。系统首先依次判断条件表达式1、条件表达式2、…、条件表达式n是否为真,如果某个条件表达式为真,则执行该CASE段的<语句序列>,然后执行ENDCASE后面的语句。

如果所有的条件表达式的值都为假,若有OTHERWISE子句,就执行<语句序列n+1>,最后执行ENDCASE后面的语句。图2-5多分支结构框图在编写分支结构程序时需注意:

(1)条件语句中的IF和ENDIF必须配对出现;同样,多分支条件语句中的DOCASE和ENDCASE也必须配对出现。

(2)分支选择结构、循环结构的语句因为不能在一个命令行中输入完毕,所以不能在命令窗口中使用这些语句。

(3)为使程序清晰易读,分支选择结构、循环结构应使用缩格书写方式。2.5.3循环结构

通过VFP程序解决实际问题时,经常遇到从某一语句开始反复有规律的执行某个程序段的现象,我们把这个程序段称为循环体。按照循环体的执行方式和条件的不同,可将循环分为:1.条件循环(dowhile型)2.步长循环

(for型)3.扫描循环(scan型)

1.条件循环

其语句格式如下:

DOWHILE<条件表达式>

<语句序列>

ENDDO

当条件表达式为真时,系统反复执行程序段,当条件表达式为假时,终止程序段的执行。因而,如果条件表达式开始就是假时,则程序段不执行。所以,条件循环的循环体执行次数最少为0次。

在具体执行过程中,首先执行DOWHILE语句判断条件表达式的值,如果为假,则直接执行ENDDO后面的语句;如果为真,则执行程序段,程序段全部执行完毕后,遇到ENDDO之后,重新执行DOWHILE语句,并重新判断条件表达式的值,根据这个值是否为真来决定是否继续循环。

2.步长循环

其语句格式如下:

FOR<内存变量>=<数值表达式1>TO<数值表达式2>[step<数值表达式3>]

<语句序列>

[EXIT]

[LOOP]

ENDFOR|NEXT

语句格式中的<内存变量>称为循环变量,<数值表达式1>、<数值表达式2>[、<数值表达式3>分别称为初值、终值和步长。步长默认为1。

[EXIT]:将控制从FOR…ENDFOR循环中跳出,转去执行ENDFOR后第一条语句。可把EXIT放在FOR…ENDFOR中任何位置。

[LOOP]:将控制直接转回到FOR子句,而不执行LOOP、ENDFOR之间的语句。具体执行过程中,当步长为正数时,通过比较循环变量与数值表达式2来决定是否执行程序段,当循环变量不大于数值表达式2就执行程序段;当步长为负时,循环变量不小于数值表达式2就执行程序段。程序段遇到ENDFOR或NEXT时,循环变量的值加上步长,然后返回到FOR重新与数值表达式2进行比较以决定是否执行程序段。

3.扫描循环

其语句格式如下:

SCAN[<扫描范围>[FOR<条件表达式1>][WHILE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论