vfp-循环结构-2010_第1页
vfp-循环结构-2010_第2页
vfp-循环结构-2010_第3页
vfp-循环结构-2010_第4页
vfp-循环结构-2010_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序1l CLEARl NSum=1l NSum=NSum+2l NSum=NSum+3l .l NSum=NSum+99l NSum=NSum+100l ? 1到到100的累加之和为的累加之和为 +STR(NSum) l RETURN程序用于计算程序用于计算1到到100的累加的累加之和。之和。解决的思想解决的思想1. 设置一个变量设置一个变量N(N=1,并逐步变化到并逐步变化到100)2. 寻找一种控制手段寻找一种控制手段,控制着控制着 NSum=NSum+N N=N+1 这两件事反复地执行这两件事反复地执行足够多足够多的次数的

2、次数N=1For I=1 to 100NSum=NSum+NN=N+1 Eenfor数据库及数据库及VFP6.0VFP6.0程序设计程序设计数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序3l FOR / ENDFOR循环语句循环语句l DO WHILE / ENDDO语句语句l SACN / ENDSACN语句语句循环体循环体条件?条件?NY数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序4步长是循环控制变量在每一次循环后变化的步长是循环控制变量在每一次循环后变化的数值数值可为正数可为正数;也可为负数也可为负数省略省略 STEP 时,等价于时,等价于S

3、TEP 1数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序5l 首先将首先将初值初值赋于循环控制变量赋于循环控制变量l 如果不超过终值,就执行如果不超过终值,就执行语句序列语句序列l 之后循环控制变量的值自动增加之后循环控制变量的值自动增加步长步长l 再与终值比较,如果仍不超过再与终值比较,如果仍不超过终值终值,则再次执行,则再次执行语句序列语句序列l 如此反复,直到如此反复,直到循环变量的值超过终值循环变量的值超过终值时退出循时退出循环,执行环,执行ENDFOR语句后面的语句语句后面的语句数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序6编程求和编程求

4、和 S=1+2+3+100。 CLEAR S=0 & S存放和值存放和值 N=1 FOR I=1 TO 100 STEP 1 & I为循环变量为循环变量 S=S+N & Sn-1+N赋赋Sn N=N+1 ENDFOR ? ”S=”,S & 输出输出S的最终值的最终值 RETURNNY数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序7INS110, 0+1221,1+2333,3+3446,6+45510,10+59999+99100100 +100N和和I的作用不同的作用不同,但数值变化的过程但数值变化的过程是一样的是一样的,可以可以“合合二为一二为一”数据库及数据库及VF

5、P6.0程序设计程序设计循环结构程序循环结构程序8CLEARS=0 FOR I=1 TO 100 S=S+I ENDFOR? ”S=”,SRETURN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序9l S=1+3+5+7+9+ +99l S=2+4+6+8+ +100l S=1+1/3+1/5+1/7+ +1/99l S=1/2+2/3+3/4+4/5+5/6+6/7+ +100/101l S=1-1/3+1/5-1/7+1/9- + l 多项式求解多项式求解问题问题阶乘问题的求解阶乘问题的求解 但要注意变量的初始化问题但要注意变量的初始化问题数据库及数据库及VFP6.0

6、程序设计程序设计循环结构程序循环结构程序10l为数据表中的为数据表中的“序号序号(C,4)”字段顺序编号字段顺序编号l即按照记录的物理顺序对记录的即按照记录的物理顺序对记录的“序号序号”字段填入一字段填入一个序号值;并首记录的序号值为个序号值;并首记录的序号值为“1”;依此类推,逐;依此类推,逐一进行编号一进行编号l每次填写共分两步完成:每次填写共分两步完成:l指针定位指针定位 l替换序号字段替换序号字段REPLACE 序号序号 WITH 数值数值l填写操作从首记录开始,一直到末记录结束;需要进填写操作从首记录开始,一直到末记录结束;需要进行的替换操作的次数就是记录的总数行的替换操作的次数就是

7、记录的总数数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序11打开数据表打开数据表统计记录数赋值统计记录数赋值NI=N指针定位:指向第指针定位:指向第I号记录号记录替换替换“序号序号”:用:用I替换替换“序号字段值序号字段值”关闭数据表关闭数据表结束结束NY数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序12CLEARS=0FOR N=1 TO 10 ENDFOR?“倒数和倒数和 S=”,SRETURN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序13数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序14数据库及数

8、据库及VFP6.0程序设计程序设计循环结构程序循环结构程序15循环体中可以包含循环体中可以包含EXIT命令和命令和LOOP命令命令: 执行执行EXIT命令时,退出整个循环命令时,退出整个循环 执行执行LOOP命令时,结束本次循环命令时,结束本次循环LOOP 和和 EXIT 语句通常与语句通常与IF 分支语句相结合使用分支语句相结合使用 ,以决定是否结束本次循环或是否彻底退出循环以决定是否结束本次循环或是否彻底退出循环数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序16将初值赋给循环变量将初值赋给循环变量循环变量循环变量1974 DISPLAY ENDIF ENDFOR US

9、E RETRUN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序19CLEARS=0 FOR I=1 TO 100 S=S+I ENDFOR? ”S=”,SRETURN如题目改为如题目改为:计算计算1到到100的累加和的累加和,但当和值达到但当和值达到4000时时停止计算停止计算,并输出当时并输出当时的结果的结果?必须首先确定循环的必须首先确定循环的次数次数如不能事先确定如不能事先确定,将将无能为力无能为力数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序20数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序21编程求和编程求和S=1+2

10、+3+, CLEAR S=0 N=1 DO WHILE S=S+N N=N+1 ENDDO ? ”累加和累加和S=”,S RETURN特别注意两条语句特别注意两条语句直到直到S=4000结束结束S4 N=N+SUBSTR(M,1,2) M=SUBSTR(M,3)ENDDO? NRETURN 数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序28CLEARUSE 学生学生 DO WHILE EOF()=.F. IF YEAR(出生日期出生日期)1974 DISPLAY ENDIF SKIP ENDDOUSERETRUN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环

11、结构程序29lSCAN 命令控制指针从首记录开命令控制指针从首记录开始,始,自动地自动地逐条向下单步移动,扫逐条向下单步移动,扫描整个数据表,并描整个数据表,并对每一条被扫描对每一条被扫描到的数据记录都执行语句序列规定到的数据记录都执行语句序列规定的系列操作;的系列操作;即:即:l记录指针指向首记录记录指针指向首记录l语句序列语句序列l自动下移一条自动下移一条l语句序列语句序列l l直到文件尾结束直到文件尾结束数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序30l 假设有关系:成绩(学号假设有关系:成绩(学号,数学数学,物理物理,化学,化学,) USE 成绩成绩 nMax=

12、0 SCAN nMax=MAX(nMax,数学数学) ENDSCAN ?nMax RETURN 程序用于统计并输出表中的所有程序用于统计并输出表中的所有数学成绩的最大值数学成绩的最大值nMax=0do while eof()=.f. nMax=MAX(nMax,数学数学) skipenddo 数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序31 如指定如指定范围范围,则只,则只能扫描确定范围内能扫描确定范围内的数据记录的数据记录默认默认ALL数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序32l 假设有关系:成绩(学号假设有关系:成绩(学号,数学数学,物

13、理物理,化学,化学,) USE 成绩成绩 nMax=0 GO 5 SCAN NEXT 20 nMax=MAX(nMax,数学数学) ENDSCAN ?nMax RETURN 程序用于统计并输出表中从第程序用于统计并输出表中从第5号记录开始的以下号记录开始的以下20条记录的条记录的数学成绩的最大值数学成绩的最大值数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序33 FOR 如包括如包括条件子句条件子句,则将,则将记录指针自动指向满足记录指针自动指向满足条件的第一条记录上,条件的第一条记录上,执行语句序列执行语句序列之后,将移到下一条满之后,将移到下一条满足该条件的记录,并继足

14、该条件的记录,并继续执行语句序列组中的续执行语句序列组中的命令命令即即只能扫描到满足条件只能扫描到满足条件的数据记录的数据记录数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序34编程统计学生表中男学生的人数编程统计学生表中男学生的人数CLEARN=0USE 学生学生SCAN FOR 性别性别=”男男” N=N+1 &对满足条件的记录计数对满足条件的记录计数ENDSCAN ? ”学生表中男学生的人数是:学生表中男学生的人数是:”+STR(N)USERETURN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序35USE 学生学生SCAN IF YEAR(出生

15、日期出生日期)1974 DISPLAY ENDIFENDSCANUSERETURNUSE 学生学生SCAN FOR YEAR(出生日期出生日期)1974 DISPLAYENDSCANUSERETURN数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序36l SCAN循环是建立在对数据表进行循环是建立在对数据表进行”扫描扫描”的基础之上;自动指的基础之上;自动指针下移,自动检测指针位置;不能处理非数据表操作的问题针下移,自动检测指针位置;不能处理非数据表操作的问题l 使用使用FOR必须事先确定循环的初值、终值和步长必须事先确定循环的初值、终值和步长(即已知循环即已知循环的次数的

16、次数);否则,不能使用该语句结构;否则,不能使用该语句结构l 使用使用DO循环应首先确定循环条件;该循环的功能最强;以上循环应首先确定循环条件;该循环的功能最强;以上两种语句结构能解决的问题,他都能解决。反之不必然两种语句结构能解决的问题,他都能解决。反之不必然数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序37FOR X=1 TO 4 FOR Y=1 TO X ? “ ” ENDFOR FOR Y=1 TO 9-(2*X) ? “*” ENDFOR ? &输出一个空行输出一个空行ENDFORRETURN * * * *数据库及数据库及VFP6.0程序设计程序设计循环结构程序循环结构程序38l 一个循环结构是另一个循环的一个循环结构是另一个循环的“语句序列语句序列”l 或称一个循环嵌套着另一个循环或称一个循环嵌套着另一个循环l 分别称为外循环与内循环分别称为外循环与内循环l 外循环循环一次,内循环循环一遍外循环循环一次,内循环循环一遍l 嵌套可以多层;但不允许交叉嵌套可以多层;但不

温馨提示

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

评论

0/150

提交评论