您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > VFP第11部分()解析
3种循环结构Dowhile….enddofor….endforscan….endscan循环辅助语句loop:通常又称为中途复始语句或短路语句。exit:通常又称为中途退出语句或循环终止语句。流程图:条件语句序列LOOPEXITenddo的下一条命令NY【例】将10到20中第一个能被3整除的数找出来。Forn=10to20ifn%3=0?nexitendifendfor结束当前循环,跳出exit所在的循环结构【例】求300以内能被17整除的最大的数。forx=300to1step-1ifmod(x,17)=0?xexitendifendfor找到满足条件的最大数,结束循环从大数开始,第一次找到的就是最大值【例】将10到20中所有不能被3整除的数找出来。forn=10to20ifn/3=int(n/3)loopendif?nendfor结束本次循环,转入下一次循环条件的判断【例】求300以内能被17整除的所有整数。forx=1to300ifx%17!=0loopelse?xendifendfor例:计算100以内的奇数和s=0i=0dowhile.t.i=i+1ifi100exitendififi%2=0loopelses=s+iendifenddo?100以内的奇数和为:,scancel永真循环还有哪些等价的表达式?mod(I,2)=0或int(i/2)=i/2store0tox,sdowhil.t.x=x+1s=5*xifs20exitelse?sendienddretu结果为:5101520例:写出程序的结果x=.t.s=0dowhilxs=s+1ifs/8=int(s/8)?selseloopendiifs30x=.f.endienddretu结果为:8162432例:写出程序的结果例:逐条显示xsda.dbf中女生的记录并统计人数。cleausexsdavs=0dowhilnoteof()if性别=“男”scanskipif性别=“男”looploopelseelsedispdispvs=vs+1vs=vs+1skipendiendiendsendd?”女生人数为:”,vsretu例:以下程序段与VFP命令:DELETEWHILE性别=男.and.政治面貌=群众等效,请填空完成。Gotopdowhile.not.eof()if性别男①endifif政治面貌=群众②endifskipenddo①exit②delete例:下列程序判断一个自然数n是否为素数,其方法是用2到之间的数逐个去除,若余数都不为0,则n为素数,否则不是素数,请填空完成。INPUT请输入一个大于1的自然数:TONY=1&&Y=1表示所输入的自然数是素数,为0表示不是素数X=INT(SQRT(N))I=2DOWHILEI=XIFN%I___①________②_____LOOPELSEY=0EXITENDIFENDDOIFY=1?____③______+是素数ELSE?N,不是素数ENDIFRETURN①0②i=i+1③str(n)多重循环(掌握双重循环)真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条件假改变内循环循环条件改变外循环循环条件外循环结束二重循环嵌套结构执行流程内循环结束例:利用双重循环编程求sum=1+(1+2)+(1+2+3)+…+(1+2+3+…+10)之值。方法一:clearsum=0fori=1to10t=0forj=1toit=t+jendforsum=sum+tendfor?1+(1+2)+(1+2+3)+…+(1+2+3+…+10)=,sumreturn累加方法二:clearsum=0t=0fori=1to10t=t+isum=sum+aendfor?'sum=',sumreturn例:编写输出乘法口诀表的程序,要求口诀表呈三角形格式输出。1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4=165*1=55*2=105*3=155*4=205*5=25.....9*1=99*2=189*3=279*4=369*5=45…9*9=81cleaforx=1to9&&控制行fory=1tox&&控制列s=x*y??allt(str(x))+*+allt(str(y))+;=+allt(str(s))+endf?endfretu什么意思,可以省略吗?例:编程打印如下图形:*************************clearfori=1to5&&控制行forj=1to2*i-1&&控制列??'*'endfor?endforreturnfori=1to6&&用于控制行fork=6toistep-1??“”endforforj=1to2*i-1&&用于控制每行的字符个数??“*”&&每行输出的字符endfor?&&每行输出完后要换行endfor&&相当于??space(6-i)每一行定位************************************例:编程打印图形:
本文标题:VFP第11部分()解析
链接地址:https://www.777doc.com/doc-3361661 .html