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

下载本文档

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

文档简介

1、visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件6.2 程序控制结构程序控制结构程序结构是指程序中命令或语句执行的流程结构。程序结构是指程序中命令或语句执行的流程结构。在在VFPVFP系统的应用程序中,常见的程序控制结构有系统的应用程序中,常见的程序控制结构有顺序结构、选择结构和循环结构三种。顺序结构、选择结构和循环结构三种。顺序结构是任何从简单到复杂的程序都离不开的顺序结构是任何从简单到复杂的程序都离不开的主体基本结构,它按命令在程序中出现的先后次主体基本结构,它按命令在程序中出现的先后次序依次执行。但是绝大多数问题仅用顺序结构是序依次执行。但是绝大多数问题仅用顺序结构是无

2、法解决的,还要用到选择结构和循环结构。无法解决的,还要用到选择结构和循环结构。visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件6.2.1 选择结构程序设计选择结构程序设计选择结构是选择结构是VFP系统程序的基本结构之一,又称分系统程序的基本结构之一,又称分支结构。选择结构语句有三种基本形式。支结构。选择结构语句有三种基本形式。 1、简单分支、简单分支语句格式:语句格式:IF条件表达式条件表达式 命令序列命令序列 ENDIF语句功能:当条件为真时,执行语句功能:当条件为真时,执行IF和和ENDIF之间的之间的命令序列;当条件为假时,执行命令序列;当条件为假时,执行ENDIF后面

3、的语句。后面的语句。条件为真条件为真?语句组语句组END IF后面的语句后面的语句YNvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:检查例如:检查DA.DBFDA.DBF中有无工资低于中有无工资低于650650元的记录,元的记录,如果有,则显示该记录的信息,然后显示全部记如果有,则显示该记录的信息,然后显示全部记录。程序如下:录。程序如下: SET TALK OFFSET TALK OFF USE DA USE DA LOCATE FOR LOCATE FOR 工资工资 650.00 650.00 IF .NOT.EOF()IF .NOT.EOF() DISPLAY

4、DISPLAY ENDIF ENDIF LIST LIST SET TALK ON SET TALK ONvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件2、选择分支语句选择分支语句语句格式:语句格式:IF ELSE ENDIF语句功能:当条件为真时,先执行语句功能:当条件为真时,先执行,然后再去执行然后再去执行ENDIF后面的语句;当条件为假时,后面的语句;当条件为假时,先执行先执行,然后再转去执行,然后再转去执行ENDIF后面后面的语句。的语句。END IF后面的语句后面的语句语句行语句行条件为真?条件为真?语句组语句组1语句组语句组2YNvisualfoxpro程序设计

5、案例教程(蔡莉)vf按章第6章课件例如例如:铁路托运行李,假设每张车票可按每铁路托运行李,假设每张车票可按每Kg0.5元托运元托运50Kg以内的行李,如果超过以内的行李,如果超过50Kg时,超过的部分每时,超过的部分每Kg加价加价0.3元。计算公式为元。计算公式为 X=0.5W (当当W50Kg) X=0.550+0.8(W-50) (当当W50Kg)程序如下:程序如下:SET TALK OFFINPUT “请输入行李的重量为:请输入行李的重量为:” TO WIF W=50X=0.5*WELSE X=0.5*50+0.8*(W-50)ENDIF?“行李的重量为行李的重量为”+STR(W,6,2

6、)+“Kg,其运费为:其运费为:”+STR(X,6,2)+“元元”SET TALK ONRETURNX=visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件3、IF条件语句的嵌套条件语句的嵌套语句格式:语句格式:IF ELSEIF ELSEIF ELSE ENDIF ENDIFENDIF语句功能:此种嵌语句功能:此种嵌套语句可以对复杂套语句可以对复杂情况进行各种判断。情况进行各种判断。说说 明:在这种嵌明:在这种嵌套形式中,要求每套形式中,要求每一层的一层的IF和和ELSE及及ENDIF必须一一对必须一一对应。应。IF-ELSE-ENDIF每个命令各每个命令各占一行,不能在同占一

7、行,不能在同一行出现。一行出现。visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件4、多路分支语句、多路分支语句语句格式:语句格式:DO CASECASE CASE OTHERWISEENDCASE语句功能:执行此命令时,语句功能:执行此命令时,系统从头依次查看每一个系统从头依次查看每一个CASE的条件表达式,只要的条件表达式,只要某一个条件表达式的值为某一个条件表达式的值为真,就执行该条件下的语真,就执行该条件下的语句组,其他条件下的语句句组,其他条件下的语句组都跳过去,接下来执行组都跳过去,接下来执行ENDCASE后面的语句。后面的语句。OTHERWISE是一个可选是一个可

8、选项,若所有的条件都不成项,若所有的条件都不成立,则执行立,则执行OTHERWISE后面的语句;如果没有可后面的语句;如果没有可选项选项OTHERWISE,则所则所有的条件都不成立,接着有的条件都不成立,接着执行执行ENDCASE后面的语句。后面的语句。visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件条件条件2条件条件1条件条件notherwise语句序列语句序列1语句序列语句序列2语句序列语句序列n语句序列语句序列EndCase后面的语句后面的语句.visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:计算分段函数值:例如:计算分段函数值: 2x-1 (x

9、0) 3x+5 (0=x5)f(x)= x+1 (3=x5) 5x-3 (5=x=10) 程序代码如下:程序代码如下:SET TALK OFFINPUT “输入输入 X 的值:的值:” TO XDO CASE CASE X=0 AND X=3 AND X=5 AND X10 F=5*X-3 OTHERWISE F=7*X+2ENDCASE? ?F(X)=,FSET TALK ONRETURNvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件6.2.2 循环结构程序设计循环结构程序设计1、DO WHILE-ENDDO语句语句语句格式:语句格式:DO WHILE LOOP EXIT

10、ENDDO语句功能:当条件表达式的值为真时,始终执行语句功能:当条件表达式的值为真时,始终执行语句组;否则执行语句组;否则执行ENDDO后面的语句。后面的语句。visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件执行执行ENDDO后面的语句后面的语句执行循环体内各语句执行循环体内各语句修正条件表达式的值修正条件表达式的值条件为真?条件为真?NYvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:以显示方式输出例如:以显示方式输出110的数字。的数字。 SET TALK OFF CLEAR I=1 DO WHILE I =10 ? I I=I+1 ENDDO语句

11、语句I=I+1就是用来修改循环条件的,如果没有这就是用来修改循环条件的,如果没有这一句,一句,I的值永远等于是,上述循环就成为一个死的值永远等于是,上述循环就成为一个死循环。循环。 visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件 例如:统计职工表例如:统计职工表ZGDA.DBF中,职称是讲师和副教授,中,职称是讲师和副教授,年龄为年龄为45岁以下的教师人数。岁以下的教师人数。程序如下:程序如下: SET TALK OFF STORE 0 TO C,W USE ZGDA DO WHILE .NOT.EOF( ) DO CASE CASE (年龄年龄45).and.职称职称=“

12、讲师讲师” W=W+1 CASE (年龄年龄45).and.职称职称=“副教授副教授” C=C+1 ENDCASE SKIP ENDDO ?“讲师讲师45岁以下的人数为:岁以下的人数为:”,W ?“副教授副教授45岁以下的人数为:岁以下的人数为:”,C SET TALK ON RETURNvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件(5)如果循环体中包含)如果循环体中包含LOOP语句,则当遇到语句,则当遇到LOOP时,就时,就结束循环体的本次执行,不再执行其后面的语句,而转到结束循环体的本次执行,不再执行其后面的语句,而转到DO WHILE开始处重新判断条件。开始处重新判

13、断条件。例如:在双重循环中,例如:在双重循环中,LOOP语句在内循环体中,当执行语句在内循环体中,当执行到到LOOP语句时,它跳回到内循环的语句时,它跳回到内循环的DO WHILE的开始处,的开始处,重复对重复对的判断。的判断。 DO WHILE DO WHILE LOOP ENDDO ENDDOvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:将例如:将DA1.DBF表中凡是工资小于表中凡是工资小于700元的增加元的增加100元。元。 SET TALK OFF USE DA2 DO WHILE .NOT.EOF() IF 工资工资=700 SKIP LOOP ENDIF

14、 REPLACE 工资工资 WITH 工资工资+100 SKIP ENDDO SET TALK ONRETURNvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件 例如:求例如:求0100之间的奇数之和。之间的奇数之和。 SET TALK OFF X=0 Y=0 DO WHILE X100 EXIT ENDIF S=S+N N=N+1 ENDDO ? “1+2+3+100=”,S CANCEL 运行结果为:运行结果为: 1+2+3+100=5050visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件2、FOR-ENDFOR语句语句该语句通常用于实现循环次数已知情况

15、下的循环该语句通常用于实现循环次数已知情况下的循环结构。结构。语句格式:语句格式:FOR 循环变量循环变量=TOSTEP LOOP EXITENDFORvisualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:找出例如:找出ZGDA表中年龄最大的记录号。表中年龄最大的记录号。 SET TALK OFF USE ZGDA MAX=年龄年龄 J=RECCOUNT()() FOR I=1 TO J IF MAXMA MA=A ENDIF IF AMI MI=A ENDIFENDFOR?“最大值:最大值:”,MA?“最小值:最小值:”,MISET TALK ONRETURNvisualf

16、oxpro程序设计案例教程(蔡莉)vf按章第6章课件3、SCAN-ENDSCAN语句语句语句格式:语句格式:SCANFORLOOPEXITENDSCAN语句功能:语句功能:SCAN的功能是执行时,记录指针自的功能是执行时,记录指针自动、依次地在当前表中范围内满足条件的记录上动、依次地在当前表中范围内满足条件的记录上移动,并对每一条记录执行命令序列。移动,并对每一条记录执行命令序列。说明:说明:的默认值是的默认值是ALL。visualfoxpro程序设计案例教程(蔡莉)vf按章第6章课件例如:统计职工科室代码(职工号的第例如:统计职工科室代码(职工号的第1、2位)为位)为02的的男、女职工人数男、女职工人数SET TALK OFFCLEARUSE ZGDASTORE 0 TO M,WSCAN FOR SUB(职工号职工号,1,2)=”02” IF 性别性别“男男” M=M+1 ELSE W=W+1 ENDIFENDSCAN?“男职工人数:男职工人数:”,M?“女职工人数:女职工人数:”,WUSESET TALK ONRETURNvisualfoxpro程序设计案例教程(蔡

温馨提示

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

评论

0/150

提交评论