VFP-For循环语句
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据表扫描循环 SACN / ENDSACN语句
1、FOR„ENDFOR语句(步长(计数)循环)
该语句通常用于已知循环次数情况下的循环结构。
FOR 循环变量=初值 TO 终值 [ STEP 步长 ] <语句序列> [ IF <逻辑表达式>
格式:
步长是循环控制变量在每一次循环后变化的数值 执行EXIT命令时,退出整个循环 ENDIF] 可为正数;也可为负数 执行LOOP命令时,结束本次循环
功能:将10到20中第一个能被3整除的数找出来。
【例2】 求300以内能被17整除的所有整数。 clear for x=1 to 300 if x%17!=0 loop else ?x endif endfor
Fra Baidu bibliotek 【例3】
• 为数据表中的“序号(C,4)”字段顺序编号
– 即按照记录的物理顺序对记录的“序号”字段填入一个序号值;
必须首先确定循环的次数 如不能事先确定,将无能为力
课后作业
1、求n的阶乘。
2、计算1~100之间的偶数和。
解决问题:
编程计算1到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 Y ? ”S=”,S RETURN && 输出S的最终值
N
本例执行过程分析
I 1 2 N 1 2 S 0, 0+1 1,1+2
EXIT循环断路命令
循环变量自动增加一个步长
FOR循环命令说明
• 首先将初值赋于循环控制变量 • 如果不超过终值,就执行语句序列
• 之后循环控制变量的值自动增加步长
• 再与终值比较,如果仍不超过终值,则再次执行语句序列 • 如此反复,直到循环变量的值超过终值时退出循环,执行ENDFOR
语句后面的语句
并首记录的序号值为“1”;依此类推,逐一进行编号 – 每次填写共分两步完成:
• 指针定位
• 替换序号字段 REPLACE 序号 WITH 数值 – 填写操作从首记录开始,一直到末记录结束;需要进行的替换操 作的次数就是记录的总数
流程与程序代码
打开数据表
统计记录数赋值N
N I<=N Y 指针定位:指向第I号记录 替换“序号”:用I替换“序号字段值”
关闭数据表 结束
【例4】任意输入的10个数值的倒数之和
CLEAR S=0 FOR N=1 TO 10 INPUT “X= ” TO X S=S+1/X ENDFOR
?“倒数和 S=”,S
RETURN
完善程序:增加判断输入值是否为“0”
CLEAR S=0 FOR N=1 TO 10 INPUT “X=” TO X IF X=0
S=S+1/X
ENDFOR ?“倒数和 S=”,S
LOOP
ENDIF
RETURN
FOR循环结构语句的局限性
CLEAR S=0 FOR I=1 TO 100 S=S+I ENDFOR ? ”S=”,S RETURN
如题目改为: 计算1到100的累加和,但 当和值达到4000时停止计 算,并输出当时的结果
Visual FoxPro
§5.2.3循环结构程序设计
——For循环语句
主讲人:胡凤娇
重庆文理学院 软件工程学院11级计科班
复习
1、顺序结构常用的程序语言和格式 输入语句 INPUT “提示文字”;变量列表 输出语句 PRINT “提示文字”;变量列表 赋值语句 变量=表达式 2、条件结构常用的程序语言和格式 IF (1) 条件成立 THEN (2) 条件成立 THEN IF 语句1 语句 ELSE END IF 语句2 END IF
ENDFOR
循环体中可以包含EXIT命令和LOOP命令: LOOP | EXIT
省略 STEP <步长> 时,等价于 STEP 1 LOOP 和 EXIT 语句通常与IF 分支语句相结
合使用 ,以决定是否结束本次循环或是否彻 底退出循环
将初值赋给循环变量 N
循环变量<=终值
Y
循 环 体
语句序列 LOOP循环短路命令
循环结构介绍
在解决实际问题时,有许多操作,特别是对大量数据的处理,往往 需要重复进行。在程序中这种处理要求反复执行某段程序,而且每次 使用的数据都按一定规律变化,这种程序结构称为循环结构。
VFP提供了三种循环结构语句:
条件(当)循环 DO WHILE / ENDDO语句 步长(计数)循环 FOR / ENDFOR循环语句
循环问题的提出:编写程序,用于计算1到10的累加之和。
CLEAR NSum=1 NSum=NSum+2 如果将1到10的累加和 NSum=NSum+3 改为1到100累加和,我 …... 们又该怎么办呢? NSum=NSum+9 NSum=NSum+10 ? [1到10的累加之和为 ]+STR(NSum) RETURN
N和I的作用不同,但数
值变化的过程是一样 的,可以“合二为一”
3
4 5
3
4 5
3,3+3
6,6+4 10,10+5
99 100
99 100
…+99 … +100
修改后的程序例
CLEAR S=0 FOR I=1 TO 100 S=S+I ENDFOR ? ”S=”,S RETURN
【例1】给出一个程序,请说出程序的功能。 clear For n=10 to 20 if n%3=0 ?n exit endif endfor