Visual - FoxPro第7章学案 程序设计(7)

2019-03-09 18:16

<内存变量>:指定作为计数器的内存变量或数组元素。在执行FOR?ENDFOR语句之前,此内存变量或数组元素不一定存在。

<初始值> TO <终值>:<初始值>是计数器的初始值,而<终值>是计数器的终止值。

[STEP <步长>]:是计数器递增或递减的步长。如果<步长>是负值,则计数器递减;如果省略STEP子句,计数器每次递增1。

<语句序列>:指定要执行的VFP命令,它可以包含任意数量的命令。 [EXIT]:将控制权交给紧接在ENDFOR后面的命令。可以在FOR与ENDFOR之间的任何地方放置EXIT。

[LOOP]:将控制权直接交给FOR子句,不再执行LOOP与ENDFOR之间的语句。计数器正常递增或递减,就像执行到ENDFOR子句一样。可以在FOR与ENDFOR之间的任何地方放置LOOP。

说明:

可以用内存变量或数组元素作为计数器,指定FOR?ENDFOR循环中VFP命令的执行次数。在遇到ENDFOR或NEXT之前,始终执行FOR后面的VFP命令。执行过程中,每循环一次,计数器都会产生一次计数,计数增量由<步长>值控制,然后把计数器的值与<终值>进行比较,决定是否进行下一次循环。

【例5-9】求1到100中偶数的和 AA=0

FOR II=2 TO 100 STEP 2

AA=AA+II

ENDFOR ? AA

初始条件 终止条件 改变循环变量

step 步长0.5

For N=0.1 to 10 <语句组1> Loop <语句组2> Exit

endfor

clear k=0

for i=1 to 6 if i=5

loop

endif

k=k+1

endfor ?k retu clea s=1

for n=1 to 9 s=2*(s+1) endfo ?s retu

clea &&ASCII字母表 for i=2 to 255 ??i,chr(I) if I=0 ? endif endfor

(3)基于表的循环命令

格式:SCAN [<范围>] [FOR <条件>] [WHILE <条件>]

[<语句序列>]

[LOOP] [EXIT]

ENDSCAN

参数描述:

[<范围>]:指定对当前表中记录扫描的范围。只有在范围之内的记录才有可能扫描到。SCAN命令的默认范围为ALL。

[FOR <条件>]:只有条件表达式的计算结果为“真”的记录,才能对其执行命令。包含FOR子句可以筛选出不想扫描的记录。

[WHILE <条件>]:指定一个逻辑表达式作为执行命令的条件,只要逻辑表达式计算为“真”,就对记录执行命令,直到遇到使表达式不为“真”的记录为止。

[<语句序列>]:指定要执行的VFP命令集。

[LOOP]:把控制权直接交给SCAN子句。LOOP子句可以放在SCAN和ENDSCAN之间的任何地方。

[EXIT]:把控制权力从SCAN?ENDSCAN循环语句交给ENDSCAN下面的命令。EXIT子句可以放在SCAN和ENDSCAN之间的任何地方。

ENDSCAN:标志SCAN过程的结束。

说明:SCAN命令自动将记录指针移到下一条满足条件的记录,并执行相应的命令块。

【例5-10】逐条显示STUDENT表中男生的情况。 USE STUDENT

SCAN FOR 性别=”男”

DISP WAIT

ENDSCAN USE

use 基本表

acce \输入要查找的姓名\scan for <查询条件> disp <语句组1> [ Loop ]

<语句组2> [ Exit ] <语句组3> endscan clear use 基本表 *input \输入要查找的出生日期,分数\acce \请输入姓名 \scan for 姓名=xm

display fields 姓名,出生日期

endscan use

set talk on return

三种循环命令比较

Do while /enddo用于不确定的循环,可用于数值变量和记录查找; Scan /endscan 只用于记录查找;

For/endfor用于确定的循环,用于数值变量;

多重循环

For N=1 to 10 aa cc endfor CLEAR Text

For m=1 to 100 bb endfor

99[文本信息]

Endtext ?

for i=1 to 9

for j=1 to i

??str(j,1),\

endfor ?

endfor cancel

*阿基米德和国王下棋,阿基米德胜利,国王许诺奖励。阿基米德要求64格棋盘装满,第一格装1粒,第二格装2粒,

*第三格装4粒,第四格装8粒,。。。棋盘装满。现50000粒米重1千克,一火车厢装60吨,1秒发出一列火车,共要多少年运完?

clea s=0

for n=1 to 64

s=s+2^(n-1)

endfo ?s

nian=s/50000/1000/60/365/24/60/60 ?nian Retu

Clear &&换零钱 for x=1 to 100

for y=1 to 20

for z=1 to 10

if x+20*y+10*z=100

?x,y,z


Visual - FoxPro第7章学案 程序设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:瑞安市方圆泡沫塑料厂年产3500吨聚氨酯软泡迁建项目环境影响报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: