循环结构:前面我们学习的顺序结构和选择结构有一个共同点,即程序语句不能重复执行.而在实际应用中,常常需要多次重复执行某些语句.这样的需求适合于用循环语句来处理.在vfp中,提供了3种循环语句:do while循环、for循环及scan循环.
1.while循环:
格式:
do while 条件
语句序列
[loop]
[exit]
enddo
说明:
(1).\"do while 条件\"是循环说明语句,它标志循环的开始,并判断循环条件是否为真值;当条件为真值时,则执行语句序列;否则跳到enddo后面的语句继续执行.
(2).do while和enddo之间的语句序列也被称作循环体,是需要多次重复执行的语句,由它完成规定的数据处理工作.
(3).循环语句中的可选项exit,用于退出循环语句,可放在循环体语句的任意位置上.若在循环体中加上该可选项,当执行exit时,跳出循环体去执行enddo后面的语句.通常,exit是在条件语句控制下,当条件得到满足时便跳出循环;否则永远不能执行exit后面的循环体语句.
(4).可选项loop,是循环短路语句,也可以放在循环体语句的任意位置上.当执行loop时,其后的循环体语句部分不予执行,直接返回到循环起始语句.loop也通常放在条件语句的控制下.
(5).enddo和do while必须成对出现.
例:将\"职工档案\"表中所有职称是\"讲师\"的工资加200元,副教授加150元,无职称的加100元.
首先,我们修改一下\"职工档案\"表的结构,为其增加一个\"工资\"字段:
在命令窗口依次执行如下命令:
use 职工档案
modify structure
弹出\"表设计器\"窗口,添加一个新字段:工资 N6.1,单击\"确定\",保存更改.
再执行browse命令,在弹出的browse窗口中为每条记录的\"工资\"填上值,
新建一个程序文件xiugai.prg,程序文件的内容如下:
clear
use 职工档案
do while .not.eof()
do case
case 职称=\"讲师\"
replace 工资 with 工资+200
case 职称=\"副教授\"
replace 工资 with 工资+150
case 职称=\"无\"
replace 工资 with 工资+100
endcase
skip
enddo
use
return
程序分析:循环程序由以下4个主要部分构成:
A.循环的工作部分.它完成循环的主要工作,是循环体的主要部分.这里由do case---endcase组成.
B.循环的修改部分.它保证循环体在循环过程中,有关的量能按一定的规律变化.这里的循环修改部分是skip语句,用来实现依次操作文件的各条记录.
C.循环的控制部分.它保证循环体语句按规定的循环次数正常执行.此例中的循环控制部分是.not.eof()逻辑表达式,它表示做完所有记录的操作.
D.循环的初始部分.它是循环控制初值.本程序中循环控制初值是隐含的,因为打开文件后,记录指针指向首记录,所以操作是从首记录开始的.