visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件_第1页
visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件_第2页
visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件_第3页
visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件_第4页
visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

6.2程序控制结构,程序结构是指程序中命令或语句执行的流程结构。在VFP系统的应用程序中,常见的程序控制结构有顺序结构、选择结构和循环结构三种。顺序结构是任何从简单到复杂的程序都离不开的主体基本结构,它按命令在程序中出现的先后次序依次执行。但是绝大多数问题仅用顺序结构是无法解决的,还要用到选择结构和循环结构。,6.2.1选择结构程序设计,选择结构是VFP系统程序的基本结构之一,又称分支结构。选择结构语句有三种基本形式。1、简单分支语句格式:IF条件表达式命令序列ENDIF语句功能:当条件为真时,执行IF和ENDIF之间的命令序列;当条件为假时,执行ENDIF后面的语句。,例如:检查DA.DBF中有无工资低于650元的记录,如果有,则显示该记录的信息,然后显示全部记录。程序如下:SETTALKOFFUSEDALOCATEFOR工资650.00IF.NOT.EOF()DISPLAYENDIFLISTSETTALKON,2、选择分支语句语句格式:IFELSEENDIF语句功能:当条件为真时,先执行,然后再去执行ENDIF后面的语句;当条件为假时,先执行,然后再转去执行ENDIF后面的语句。,例如:铁路托运行李,假设每张车票可按每Kg0.5元托运50Kg以内的行李,如果超过50Kg时,超过的部分每Kg加价0.3元。计算公式为X=0.5W(当W50Kg)X=0.550+0.8(W-50)(当W50Kg)程序如下:SETTALKOFFINPUT“请输入行李的重量为:”TOWIFW=50X=0.5*WELSEX=0.5*50+0.8*(W-50)ENDIF?“行李的重量为”+STR(W,6,2)+“Kg,其运费为:”+STR(X,6,2)+“元”SETTALKONRETURN,X=,3、IF条件语句的嵌套,语句格式:IFELSEIFELSEIFELSEENDIFENDIFENDIF,语句功能:此种嵌套语句可以对复杂情况进行各种判断。说明:在这种嵌套形式中,要求每一层的IF和ELSE及ENDIF必须一一对应。IF-ELSE-ENDIF每个命令各占一行,不能在同一行出现。,4、多路分支语句语句格式:DOCASECASECASEOTHERWISEENDCASE,语句功能:执行此命令时,系统从头依次查看每一个CASE的条件表达式,只要某一个条件表达式的值为真,就执行该条件下的语句组,其他条件下的语句组都跳过去,接下来执行ENDCASE后面的语句。OTHERWISE是一个可选项,若所有的条件都不成立,则执行OTHERWISE后面的语句;如果没有可选项OTHERWISE,则所有的条件都不成立,接着执行ENDCASE后面的语句。,例如:计算分段函数值:2x-1(x=10)程序代码如下:SETTALKOFFINPUT“输入X的值:”TOXDOCASECASEX=0ANDX=3ANDX=5ANDX10F=5*X-3OTHERWISEF=7*X+2ENDCASE?F(X)=,FSETTALKONRETURN,6.2.2循环结构程序设计,1、DOWHILE-ENDDO语句语句格式:DOWHILELOOPEXITENDDO语句功能:当条件表达式的值为真时,始终执行语句组;否则执行ENDDO后面的语句。,例如:以显示方式输出110的数字。SETTALKOFFCLEARI=1DOWHILEI=10?II=I+1ENDDO语句I=I+1就是用来修改循环条件的,如果没有这一句,I的值永远等于是,上述循环就成为一个死循环。,例如:统计职工表ZGDA.DBF中,职称是讲师和副教授,年龄为45岁以下的教师人数。程序如下:SETTALKOFFSTORE0TOC,WUSEZGDADOWHILE.NOT.EOF()DOCASECASE(年龄45).and.职称=“讲师”W=W+1CASE(年龄=700SKIPLOOPENDIFREPLACE工资WITH工资+100SKIPENDDOSETTALKONRETURN,例如:求0100之间的奇数之和。SETTALKOFFX=0Y=0DOWHILEX100EXITENDIFS=S+NN=N+1ENDDO?“1+2+3+100=”,SCANCEL运行结果为:1+2+3+100=5050,2、FOR-ENDFOR语句,该语句通常用于实现循环次数已知情况下的循环结构。语句格式:FOR循环变量=TOSTEPLOOPEXITENDFOR,例如:找出ZGDA表中年龄最大的记录号。SETTALKOFFUSEZGDAMAX=年龄J=RECCOUNT()FORI=1TOJIFMAXMAMA=AENDIFIFAMIMI=AENDIFENDFOR?“最大值:”,MA?“最小值:”,MISETTALKONRETURN,3、SCAN-ENDSCAN语句,语句格式:SCANFORLOOPEXITENDSCAN语句功能:SCAN的功能是执行时,记录指针自动、依次地在当前表中范围内满足条件的记录上移动,并对每一条记录执行命令序列。说明:的默认值是ALL。,例如:统计职工科室代码(职工号的第1、2位)为02的男、女职工人数SETTALKOFFCLEARUSEZGDASTORE0TOM,WSCANFORSUB(职工号,1,2)=”02”IF性别“男”M=M+1ELSEW=W+1ENDIFENDSCAN?“男职工人数:”,M?“女职工人数:”,WUSESETTALKONRETURN,例如:在DA1.DBF表中,查找职称是“讲师”的

温馨提示

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

评论

0/150

提交评论