VFP第11部分(循环辅助语句及多重循环)解析


例:以下程序段与VFP命令: DELETE WHILE 性别="男" .and. 政治面貌="群众" 等效,请填空完成。 Go top do while .not.eof() if 性别<>"男" ① endif if 政治面貌="群众" ①exit ② ②delete endif skip enddo
例:编写输出乘法口诀表的程序,要求口诀 表呈三角形格式输出。
1*1=1 2*1=2 3*1=3 4*1=4 5*1=5 . . . 9*1=9
2*2=4 3*2=6 4*2=8 5*2=10 . . 9*2=18
3*3=9 4*3=12 4*4=16 5*3=15 5*4=20 5*5=25 9*3=27 9*4=36 9*5=45 … 9*9=81
3种循环结构
Do while….enddo for….endfor scan….endscan
循环辅助语句
loop: 通常又称为中途复始语句或 短路语句。
exit:通常又称为中途退出语句或 循环终止语句。
流程图:
N
条件 Y 语句序列 LOOP EXIT
enddo的下一条命令
【例】 来。
将10到20中第一个能被3整除的数找出
xs
do while .t. && accept "请输入学生的学号:" to xh if len(alltrim(xh))=0 exit If alltrim(xh)=“#” endif ? “姓名 专业班级 课程号 成绩" scan for 学号=xh &&内循环 ?xs.姓名,xs.籍贯,课程号, endscan enddo close all set safety on return
找到满足条件的最 大数,结束循环
【例】 来。
将10到20中所有不能被3整除的数找出
for n=10 to 20
if n/3=int(n/3)
loop
结束本次循环, 转入下一次循 环条件的判断
endif
?n endfor
【例】 求300以内能被17整除的所有整数。
for x=1 to 300 if x%17!=0
例:逐条显示xsda.dbf中女生的记录并统 计人数。
clea use xsda vs=0 do whil not eof() if 性别=“男” skip loop else disp vs=vs+1 skip endi endd ?”女生人数为:”,vs retu
scan if 性别=“男” loop else disp vs=vs+1 endi ends
例(0802).
有一程序如下,请写出运行结果。
CLEAR DIMENSION A(3,3) FOR I=1 TO 3 FOR J=1 TO 3 IF I<>J A(I,J)=0 ELSE A(I,J)=9 ENDIF ??A(I,J) ENDFOR ? ENDFOR CANCEL
9 0 0
0 9 0
①mn(6)
②scatter to mn
③skip
例(0801)以下程序的功能是统计100以内能被 8整除的整数的个数。 X=0 N=0 ①x/8<>int(x/8) DO WHILE X<=100 或 mod(x,8)<>0 X=X+1 或 x%8<>0 IF ② n=n+1 LOOP ENDIF ENDDO ?N
clear for i=1 to 5 for j=1 to ??'*' endfor ? endfor return
&&控制行 2*i-1 &&控制列
例:编程打印图形:
* *** ***** ******* ********* ***********
for i=1 to 6 && 用于控制行 ?space(6-i) for j=1 to 2*i-1 && 用于控制每行的字符个数 ??“*” && 每行输出的字符 endfor endfor
所有累加 项可以看 成右图
1 1+2 1+2+3 1+2+3+4 ……………… …………………… 1+2+3+4+5+6+7+8+9+10
方法一: clear sum=0 t=0 for i=1 to 10 t=t+i sum=sum+t endfor ?'sum=',sum return
方法二: clear思考:P29实验12 任务2 sum=0 ( 3 )计算 e 的近似值。用 for i=1 to 10 双重循环怎么做? t=0 for j=1 to i t=t+j 累加 endfor sum=sum+t endfor ? "1+(1+2)+(1+2+3)+…+(1+2+3+…+10) =",sum return
方法二: CLEAR yn="y" do while upper(yn)="Y" accept "请输入部门:" to bm clea ?space(15)+bm+"部门" select stu.姓名 as 学生姓名,关系 as 亲属关系, 亲属姓名 as 亲属名单 from stu,fam ; where stu.学号=fam.学号 and 部门=bm to screen wait "是否还要继续?(y/n)" to yn enddo retu
涉及表的双重循环
例:利用学生.dbf和选课.dbf,通过反复输入学生的 学号(输入回车键退出),查询学生的姓名、籍贯、
方法1: set safety off sele 1 use 学生 alias xs index on 学号 tag xh sele 2 use set relation to 学号 into
例:计算100 以内的奇数和
mod(I,2)=0 或 int(i/2)=i/2
s=0 i=0 do while .t. i=i+1 if i>100 永真 exit 循环 endif if i%2=0 loop 还有哪些等价 else 的表达式? s=s+i endif enddo ? "100以内的奇数和为:",s cancel
多重循环(掌握双重循环)
外循环初始条件 假 外循环条件
二重 循环 嵌套 结构 执行 流程
真 内循环初始条件 假 内循环结束 改变外循环 循环条件
内循环条件 真 内循环体 改变内循环循 环条件
外循环结束
例:利用双重循环编程求sum=1+(1+2)+ (1+2+3)+…+(1+2+3+…+10)之值。
方法2: clear all do while .t. accept "请输入学生的学号:" to xh if len(alltrim(xh))=0 exit endif select 姓名,籍贯,课程号,成绩 from 选课 xk,学生 xs where xs.学号=xh and xk. 学号=xs.学号 to screen enddo
clea for x=1 to 9 &&控制行 for y=1 to x &&控制列 s=x*y ??allt(str(x))+"*"+allt(str(y))+; "="+allt(str(s))+ " " endf ? 什么意思,可 endf 以省略吗? retu
例:编程打印如下图形:
* *** ***** ******* *********
例:下列程序判断一个自然数n是否为素 数,其方法是用2到 n 之间的数逐个去除, 若余数都不为0,则n为素数,否则不是素 数,请填空完成。
INPUT "请输入一个大于1的自然数:" TO N Y=1 &&Y=1表示所输入的自然数是素数,为0表示不是素数 X=INT(SQRT(N)) I=2 DO WHILE I<=X IF N%I___①____ ____②_____ LOOP ELSE Y=0 EXIT ① <>0 ENDIF ②i=i+1 ENDDO IF Y=1 ③str(n) ?____③______ +"是素数" ELSE ?N,"不是素数" ENDIF RETURN
loop
else
?x
endif endfor
例:写出程序 的结果 实验13 任务1(2)
结果为:8 16 24 32 40 48
x=.t. s=0 do whil x s=s+1 if s/8=int(s/8) ?s else loop endi if s>40 x=.f. endi endd retu
学号 KI01 KI02 KI03 KI04 KI05
学生情况表ST.DBF 姓名 性别 王子仪 女 李丽萍 女 张雨 男 马思成 男 陈艳 女
总成绩 409 512 390 400 395 学号 KI01 KI01 KI02 KI03 KI03 KI03 KI04 KI05 KI05
例(实验指导书 P40) :现有两个表 文件,表结构及部分 记录如下
合集下载

vfp中的两种循环结构剖析

vfp中的两种循环结构剖析
201 8 年 第 1 7 卷 第 1 1 期
vfp中 的 两 种 循 环 结 构 剖 析
口鲁 玲
【内容摘要 】vfp中提供 了三种基本 的程序 结构 ,分别是 :顺序结 构、选择结构和循环 结构 。经过科 学研 究证 明 ,任 意一个结构化 程 序 都 可 以 由这 三种 程 序 结 构 组 成 。 其 中循 环 结构 是 最 复 杂 的 一 种 ,也 是 课 堂教 学 的 重 点 、难 点 。 循 环 语 句是 专 门解 决 在 一 定条 件 下在 程 序 的 某 处 重 复执 行 某 个 程 序 的 问 题 的 。本 文 通 过 具 体 的 例 子 ,从 多 角 度 讲 解 循 环 结 构
在 应 用 HABIT程 序 的 过 程 中发 现 ,该 程 序 是 针 对 美 国 电 厂 的 设 计 特 征 和 审 管 要 求 开 发 而 来 ,对 我 国机 型 的适 用 性 有 所欠缺 :如程序将 堆芯 积存量 数 据 固化在 核素 信 息文 件 中, 不便于针对不 同堆型进行修改 ;在吸入 (甲状腺 )剂量计算 中 对 于 碘 采 用 相 同 剂 量 转 换 因子 ,并 未 区 分 形 态 ;计 算 取 风 口 大气弥散 因子 时基 于 确 定气 象条 件 而 非 逐 时气 象 条件 等 。 很 显 然 ,在 深 入 汲 取 国 际 先 进 评 价 方 法 的 基 础 上 ,开 发 完 成 适 用 于我 国核 电 厂 主 控 室 的可 居 留 性 评 价 软 件 具 有 重 要 的 工 程 意 义。
For Evaluating Design Basis Accidents At Nuclear Power Reac—
tors[s]. [5]刘新 建 ,黄树 明,刘 鹏飞 等.ACPIO00主控 室 可居 留性 系 统改进分析 [J].核 工程研 究与设计 ,2014:249—253 [6]US NRC.SPR6:5.2,Containment Spray As A Fission Prod— uct Cleanup System Review Responsibilities[S]. [7]国家核安 全局 .HAD002/01—2010,核动 力厂 营运单位 的 应 急 准备 和 应 急 响 应 [S].

解析VFP三种循环语句

解析VFP三种循环语句
?” M = S SU ’ UM S TT E ALK ON RE TUR N

程序分析 :本例中循环的次数事前未知,只知道什么时候退出循环 时, 因此只能使用 D IE语句 , OWH L 不能使用 F R语句。 O 例2 计算 12 23 _ +) " + .N + 1 的值 执行过程: 命令执行时 , 首先判断 D L < O WHIE 条件 > 值为卫时 , 则 用 D IE O WH L 语句编写程序 反复执行 < 命令序列 >遇到 E D O时 , , N D 返回到 D IE处重复以 O WH L 用 F R语句编写程序, O 代码如下 上的过程。当 < 条件 > 值为F时, 直接跳出循环转去执行 E D O后面的 N D S T AL OFF E T K 命令。说明:O WH L 唐 起始命令,N D D IE是, E D O是循 书 命令 ;O D CL A R E I UT ” ” TO NP N= N WH L IE和 E D O之问的命令序列为循环体, ND S 0 = 令, 由它完成规定的数据处理工作 ;O P L O 是循环短路语句, 用于控制循环 F OR =1 I TO N S S I 、 = 十【f+l 的特殊命令,可以使程序执行流程转向循环开始命令处 ;x r E r 也是控制 ENDF OR 循环的特料谕冷 , 用于退 出循研 . , 向 可以跳出循研. 转去勃【 彳 = 酐 吉 瑜 ? ” =” S .S 令之后的命令 ; O P和 E T必须使用在循环体中, 往往是和分支 LO XI 而目 S ET lA ON r LK RET URN 结构配合使用;O WH L D IE和 E D O必须成对出现, ND 且各自独占—行; RE TURN D IE后的 < O WH L 条件 > 应在循环到一定次娄日 , 殳寸其值为F, 否则会导致 程序分析: 本例中循环的次数为 N 可以使用 D IE语句 , , O WH L 也可 死循环。出现死循环时, E C 可用 S 键终止。 以使用 F R语句。对程序代码进行比铰, O 显然 F R语句更加简洁直观。 O 1 2计数循环 例3 显示“ 学生入学登记表” 中性别为“ 且专业是“ 男” 计算机” 的学生 命令格式 : F R< 强 > ( O 锎 = 初值 > O< T 烛 > P步蛐 性别 专业 、 、 姓名 籍贯、 民族和入学成绩。

VF循环结构

VF循环结构

循环结构:前面我们学习的顺序结构和选择结构有一个共同点,即程序语句不能重复执行.而在实际应用中,常常需要多次重复执行某些语句.这样的需求适合于用循环语句来处理.在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,程序文件的内容如下:clearuse 职工档案do while .not.eof()do casecase 职称=\"讲师\"replace 工资 with 工资+200case 职称=\"副教授\"replace 工资 with 工资+150case 职称=\"无\"replace 工资 with 工资+100endcaseskipenddousereturn程序分析:循环程序由以下4个主要部分构成:A.循环的工作部分.它完成循环的主要工作,是循环体的主要部分.这里由do case---endcase组成.B.循环的修改部分.它保证循环体在循环过程中,有关的量能按一定的规律变化.这里的循环修改部分是skip语句,用来实现依次操作文件的各条记录.C.循环的控制部分.它保证循环体语句按规定的循环次数正常执行.此例中的循环控制部分是.not.eof()逻辑表达式,它表示做完所有记录的操作.D.循环的初始部分.它是循环控制初值.本程序中循环控制初值是隐含的,因为打开文件后,记录指针指向首记录,所以操作是从首记录开始的.2.for循环:在已知循环次数的情况下,使用for循环比较方便格式:for 变量=初值to 变量终值[step]步长语句序列[exit][loop]endfor|next功能:在循环控制变量的初值和终值的范围内执行循环语句,每执行一次循环,循环控制变量都要加上增量.当其值在规定范围内时就再次执行循环体语句序列,否则结束循环,执行循环终止语句下面的语句.跳出循环和循环短路语句exit和loop意义同前.具体执行步骤:(1).给变量赋初值;(2).判断变量的值是否小于等于终值;(3).若不是,则循环结束;(4).若是,则执行语句序列;(5).变量=变量+步长(若省略step,则步长=1);(6).转(2).例:在屏幕上输出乘法口诀表程序文件内容如下:?\"九九乘法表\"?for i=1 to 9for j=1 to i??alltrim(str(i))+\"*\"+alltrim(str(j))+\"=\"+alltrim(str(i*j))+\" \"next?next3.scan循环:格式:scan [范围][for 条件]语句序列endscan功能:对表中指定范围,满足条件的记录执行循环体语句,每执行一次循环,记录指针自动移动到下一条记录.操作表时,使用该语句功能强,效率高.例:使用scan语句编程,显示\"职工档案\"表中的女教师的姓名和职称.use 职工档案scan for .not.性别display 姓名,性别endscanusereturn。

vfp循环语句

vfp循环语句

一、条件循环语句 ( 当型循环语句)
DO WHILE <条件表达式> 〈条件表达式值为真时需反复执行 的语句系列〉 ENDDO
循环说明部分
DO WHILE<条件表达式> 〈条件表达式值为真时 需反复执行的语句系列〉 ENDDO
循环体 循环结束部分
条件? 条件? Y
N
循环体
功能:当条件表达式值 ENDDO后面的语句 为真时反复执行循环体, 直到条件表达式值为假 时为止。
三、扫描循环语句
模式一: … USE〈表文件〉 … GO TOP !EOF() DO WHILE EOF()=.F. 〈处理一条记录的命令序列〉 NOT EOF() SKIP ENDDO USE …
例:将jsdn.dbf中所有职称为 教授的基本工资增加100元, 副教授增加70元,讲师增加 50元,助教增加30元。
解法二:
use gs do while !eof() i=2 store 得分1 to m,n,x do while i<=8 j=str(i,1) m=max(m,得分&j) n=min(n,得分&j) x=x+得分&j i=i+1 enddo replace 最后得分with (x-m-n)/6 skip enddo use
例:编程显示26个大写英文字母 和它们的ASCII码值,每行显示 10个字母。
例:编程程序,建立并输出一个 10×10的矩阵,该矩阵两条对角 线元素为1,其余元素均为0。
例:若一个三位自然数的值等 于该数各位数字的立方和,则 这个自然数叫做“水仙花数”, 例如153=1^3+5^3+3^3,153是 一个水仙花数,请编写程序求 出所有水仙花数。

VFP编程(循环结构)

VFP编程(循环结构)

二、循环结构do while 循环:当循环的次数事前未知,只知道什么时候退出循环时,要用 do while 语句;在循环体里应有使条件成立的语句;条件表达式的条件一定要与题目中给出的条件相反。

…………………………………………………………………………………………1.求12+42+72+……一直加直到和超过1000为止,输出和数和项数。

i=1sum=0n=0do while sum<=1000sum=sum+i^2i=i+3n=n+1enddo? "项数为",n? "sum=",sum2.求∏值,直到某项的绝对值小于0.000001为止。

4pi =1-31+51-71+…… sum=0s=1i=1t=s/ido while ABS(t)>=1E-06sum=sum+ts=-si=i+2t=s/ienddopi=4*sum? pi3.从键盘不断输入字符,统计其中数字字符的个数,一旦输入*,统计结束。

n=0accept "输入一个字符" to CHdo while CH<>"*"m=ASC(CH)if M>=48 and m<=57n=n+1endifaccept "输入一个字符" to CHenddo? "输入的字符中共有数字字符个数为",n4.键盘输入两个整数,求他们的最大公约数和最小公倍数。

input "输入一个整数" to minput "输入另一个整数" to nm1=mn1=nt=mod(m,n)do while t<>0m=nn=tt=mod(m,n)enddo? "最大公约数为",n? "最小公倍数为",m1*n1/n* 02年真题第2题:求两个整数m和n的最大公约数。

VFP第11部分(多表程序及表的多重循环)

VFP第11部分(多表程序及表的多重循环)

方法二: CLEAR yn="y" do while upper(yn)="Y" accept "请输入部门:" to bm clea ?space(15)+bm+"部门" select stu.姓名 as 学生姓名,关系 as 亲属关系, 亲属姓名 as 亲属名单 from stu,fam ; where stu.学号=fam.学号 and 部门=bm to screen wait "是否还要继续?(y/n)" to yn enddo retu
clear clear all set safe off set talk off 数据环境 select 1 use xsda inde on 学号 tag xh select 2 use xskc inde on 课程号 tag kch select 3 use xscj set relation to 学号 into xsda set relation to 课程号 into xskc additive
?"学号 姓名 课程名 考试成绩" scan ?学号,xsda.姓名,xskc.课程名,考试成绩 endscan accept "请输入课程号:" to kch 输入 accept "请输入学期:" to xq calculate avg(考试成绩),max(考试成绩), min(考试成绩) to pjf,zgf,zdf for 课程号=kch and 学期=xq ?"该门课程该学期的平均分为:",pjf ?"该门课程该学期的最高分为:",zgf ?"该门课程该学期的最低分为:",zdf

VFP讲稿第11周参考讲义

VFP第十一周电子讲义[复习上节课内容]1.总结:DO-WHILE循环一般含有三要素:循环变量赋初值、循环条件和循环增值语句。

累加、累乘算法一般含有两条语句:累加(乘)变量赋初值语句(循环之前)和累加(乘)语句(循环体内)。

2.水仙花数拆分各个位数BW=INT(N/100) SW=INT((N-BW*100)/10) GW=N%103.从键盘输入一个大于3的整数,判断是否素数。

素数:除被1和自身整除外,不能被任何数整除。

思路:穷举法。

令n被2-n-1之间的任何一个整数去除,若n能被其中任何一个整除,则非素数,若都不能整除则是素数。

法一:步骤:(1)输入N(2)设一标志变量F=0(3)FOR I=2 TO N-1 ……ENDFOR循环(4)循环体:判断N能否被I整除,若能,F=1、EXIT。

(5)出循环后,判断F的值,若F=0,输出N是素数;否则,输出N不是素数。

F=0 &&标志量,假定其值为0时N是素数。

INPUT TO NFOR I=2 TO N-1IF N%I=0 &&或INT(N/I)=N/I 或MOD(N,I)=0F=1EXITENDIFENDFORIF F=0?N,'是素数'ELSE?N,'不是素数'ENDIF法二:不用标志量。

判断是否正常出循环,是,则输出‘是素数’,否则,输出‘不是素数’。

(IF I=N,表示正常出循环,一直未执行过EXIT命令。

)CLEARINPUT “INPUT N” TO NI=2DO WHILE I<NIF INT(N/I)=N/IEXITENDIFI=I+1ENDDOIF I=N?”N是素数”ELSE?”N不是素数”ENDIFRETURN法三:clearinput "请输入一个数:"to nm=int(sqrt(n))for i=2 to mif n%i=0exitendifendforif i>m?"是素数"else?"不是素数"endifcancel**例5:三层循环解水仙花数问题FOR B=1 TO 9FOR S=0 TO 9FOR G=0 TO 9N=B*100+S*10+GIF N=B^2+S^2+G^2??NENDIFENDFORENDFORENDFOR例6:打印九九表(三角形)CLEARX=1DO WHILE X<=9Y=1DO WHILE Y<=XS=X*Y?? STR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+" "Y=Y+1ENDDO?X=X+1ENDDORETURN例7:求200以内的所有素数SET TALK OFFCLEARN=3J=0DO WHILE N<=200I=2DO WHILE I<NIF INT(N/I)=N/IEXITENDIFI=I+1ENDDOIF I=NIF MOD(J,5)!=0??NELSE?NENDIFJ=J+1ENDIFN=N+1ENDDOSET TALK ONRETURN五、数组与数组元素数组是一组有序内存变量的集合。

VFP中循环语句的分析与应用

Vo ., .5, e t mb r2 0 P7 5 0 7 1 No 2 S p e e 01 ,P 03 -7 3 6
VF P中循 环语 句 的分 析 与应 用
胡 绪英
( 四川 师 范 大学 基 础 教 学学 院 , 四川 成 都 6 0 6 ) 10 8
摘 要 : i a F x r 供 了 DO HI E NDDO、 OR…E V sl o Po提 u W L …E F NDF oR/ xT、 C N… E NE S A NDS N 等 5 个 循 环 语 句 , CA - 它们 具 有 不 同 的语 句结 构和 执 行 特 点 。在 实 际应 用 中 , 根 据 实 际解 决 的 问 题 , 择 恰 当的循 环 语 句 , 应 选 不仅 可 以使 程 序 简洁 , 而且 更 能提 高程 序 的
循环 结 构 是 程 序 设 计 中最 常 用 、 重 要 的 程 序 结 构 形 式 , 环 结 构 是 指 按 照 给 出 的条 件 重 复 执 行 一 段 完 成 特 定 功 能 的 程 序 结 最 循
构 。从 程 序 的 执行 形式 上 来 看 ,循 环结 构 可 分 为 D — IE型 和 D — N I O WH L O U T L型 , 即先 判 断 后 执 行 和 先 执 行 后 判 断 两 种 类 型 。 在 Vsa F x r , 提 供 了 D — IE型 循 环 结 构 , D IE…E D 0、 O i l oPo中 只 u O WH L 即 O WH L N D F R… E D O / E T、C N… E D C N等 三 个 语 N F RN X S A N SA 句 , 这 三个 循 环 语 句 在语 句结 构 、 行 特点 以及 适 用 场 所 有 一 定 的 区别 . 此应 根 据 不 同 的问 题 和 对象 选 择 不 同 的循 环语 句 。 但 执 因

vfp_循环结构_2010


阶乘问题的求解 但要注意变量的初始化问题 ►但要注意变量的初始化问题
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
10
FOR循环的例 FOR循环的例
为数据表中的“序号(C,4)”字段顺序编号 为数据表中的“
即按照记录的物理顺序对记录的“序号” 即按照记录的物理顺序对记录的“序号”字段填入一 个序号值;并首记录的序号值为“ ” 依此类推, 个序号值;并首记录的序号值为“1”;依此类推,逐 一进行编号 每次填写共分两步完成: 每次填写共分两步完成: 指针定位 替换序号字段 REPLACE 序号 WITH 数值 填写操作从首记录开始,一直到末记录结束; 填写操作从首记录开始,一直到末记录结束;需要进 行的替换操作的次数就是记录的总数
Y
条件? 条件?
N
SACN / ENDSACN语句 语句
循环体
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
4
FOR 循环结构
FOR 循环控制变量=初值 TO 终值 [ STEP 步长 ] 循环控制变量= <语句序列> 语句序列> [ IF <逻辑表达式> 逻辑表达式> 步长是循环控制变量在每一次循环后变化的 LOOP | EXIT 数值 ENDIF] 可为正数;也可为负数 可为正数 也可为负数 ENDFOR 步长> 省略 STEP <步长 时,等价于 STEP 1 步长
数据库及VFP6.0程序设计 循环结构程序 程序设计—循环结构程序 数据库及 程序设计
12
任意输入的10个数值的倒数之和 任意输入的10个数值的倒数之和
CLEAR S=0 FOR N=1 TO 10 INPUT “X= ” TO X S=S+1/X ENDFOR ?“倒数和 S=”,S 倒数和 , RETURN

VFP-For循环语句解读


关闭数据表 结束
【例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
解决问题:
编程计算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
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
EXIT循环断路命令
循环变量自动增加一个步长
FOR循环命令说明
• 首先将初值赋于循环控制变量 • 如果不超过终值,就执行语句序列
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档