程序的基本控制结构.pptx

上传人:wuy****n92 文档编号:91522544 上传时间:2023-05-27 格式:PPTX 页数:42 大小:360.50KB
返回 下载 相关 举报
程序的基本控制结构.pptx_第1页
第1页 / 共42页
程序的基本控制结构.pptx_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《程序的基本控制结构.pptx》由会员分享,可在线阅读,更多相关《程序的基本控制结构.pptx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Visual foxpro程序设计基础程序的基本控制结构 灵璧三中 王川Visual foxpro程序设计基础本节课要点 1、顺序结构 2、选择结构 3、循环结构Visual foxpro程序设计基础一、顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。顺序结构是程序中最基本的常用的结构。1、流程图语句A语句BVisual foxpro程序设计基础2、程序执行流程按照语句排列的先后顺序,一条接一条地依次执行。3、例题从键盘输入半径,求圆的面积。CLEARINPUT“请输入圆的半径:”TORS=0

2、S=3.14*R2?”该圆的面积为:”,S执行程序时,首先在屏幕上提示用户输入圆的半径,当输入半径并按回车键后,计算机显示出圆的面积。Visual foxpro程序设计基础二、选择结构 实际应用中,常需要先判断后处理,根据不同情况做不同的处理。选择结构就是对指定的条件进行判断,如果条件成立,则执行指定的语句序列。Visualfoxpro 中选择结构有可分为:单分支选择结构、双分支选择结构、多分支选择结构。Visual foxpro程序设计基础1、单分支选择结构 单分支选择结构只有一个程序分支。只有满足指定的条件,才能执行该程序分支的语句。(1)格式IfEndif 参数说明:If 表示选择结构开

3、始,endif 表示选择结构结束,它们必须成对使用,缺一不可。“条件”是一个逻辑表达式。“语句组”由一组visualfoxpro 的程序语句组成。Visual foxpro程序设计基础(2)程序流程 程序执行到单分支选择结构时,首先检查if后面的“条件”。如果满足条件(即该逻辑表达式的值为真.T.),则执行“语句组”,再执行endif 后面的语句。否则,不执行“语句组”,直接执行endif 后面的语句。条件语句组Endif 后语句.F.T.(3)流程图Visual foxpro程序设计基础(4)例题 键盘输入一个实数,计算并输出其绝对值。Input 请输入一个实数toxIfx0X=-xEndi

4、f?”其绝对值”,xreturnVisual foxpro程序设计基础2、双分支选择结构 双分支选择结构有两个程序分支。无论是否满足指定的条件,都能执行其中一个程序分支,并且只能执行一个程序分支。(1)格式IfElseEndifVisual foxpro程序设计基础参数说明:If 表示选择结构开始,endif 表示选择结构结束,它们必须成对使用,缺一不可。“条件”是一个逻辑表达式。“语句组”由一组visualfoxpro 的程序语句组成。If,else,endif 要各占一行,不能在同一行出现(2)、程序执行流程 程序执行到双分支选择结构时,首先检查if后面的“条件”。如果满足条件(即该逻辑表

5、达式的值为真.T.),则执行“语句组1”,否则,执行“语句组2”,“语句组1”或“语句组2”执行完后,再执行endif 后面的语句。,。Visual foxpro程序设计基础(4)例题设计一个查询程序,希望当待查人不存在时有信息提示。clearaccept“请输入待查人姓名“toxmlocatefor 姓名xmif.not.eof()displayelsemessagebox(查无此人)endifusereturn条件语句组1语句组2Endif 后语句.T.F.(3)流程图Visual foxpro程序设计基础3、多分支选择结构 多分支选择结构通常有多个程序分支,但最多执行其中一个程序分支,也

6、可能所有程序分支都不执行。(1)(2)流程图Visual foxpro程序设计基础(3)程序执行流程 程序执行到多分支选择结构时,首先检查第一个case 后面的“条件1”。如果满足条件,则先执行 命令序列1,再执行endcase 后面的语句。否则,继续检查第二个case 后的 条件2,如果满足条件,则先执行 命令序列2,再执行endcase后面的语句,如此进行下去。如所有case 后面的条件都不满足,但有otherwise 选项是,执行对应的 命令序列,没有otherwise 选项时,直接执行endcase 后面的语句。Visual foxpro程序设计基础(4)例题【例1】假设收入(P)与税

7、率(R)的关系如下表,编程求税金。0 P800R=0.05 800 P2000 0.08 2000P5000 0.1 P5000 INPUT 请输入收入:TO PDO CASECASE P800 R=0CASE P2000 R=0.05CASE P5000 R=0.08OTHERWISE R=0.1ENDCASETAX=P*R?税金为:,TAXVisual foxpro程序设计基础【例2】给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为EINPUT 请输入X值:TO XDO CASECASE X=90?ACASE X=80?BC

8、ASE X=70?CCASE X=60?DOTHERWISE?EENDCASE多分支结构INPUT 请输入X值:TO XIF X=90?AELSE IF X=80?B ELSE IF X=70?C ELSE IF X=60?D ELSE?E ENDIF ENDIF ENDIFENDIF双分支嵌套Visual foxpro程序设计基础三、循环结构 实际生活中有些操作需要重复进行,这些问题反映到程序中就是循环结构。循环结构程序可以根据指定的条件,重复执行某个程序段。visualfoxpro 提供了3 种循环结构:基于条件的循环,针对记录的循环,指定次数的循环。一个循环结构一般应具备如下几个条件:(

9、1)循环的初始条件:给循环变量赋初值;(2)循环头:循环语句的起始,设置、判断循环条件;(3)循环尾:循环语句的结尾;(4)循环体:位于循环头和循环尾之间、循环控制重复执行的语句序列 Visual foxpro程序设计基础循环结构流程图循环继续表达式循环变量初值表达式要反复执行的语句 循环变量变化表达式下一条语句不满足Visual foxpro程序设计基础1、基于条件的循环(1)格式1 DO WHILE ENDDO 说明:语句格式中的称为循环条件,DO WHILE和ENDDO之间的语句序列称为循环体,是需要多次重复执行的程序部分,由它来完成规定的数据处理操作。循环体Visual foxpro程

10、序设计基础流程图程序执行流程语句执行时,若DOWHILE 子句的循环条件为假,循环就结束,然后执行ENDDO 子句后面的语句;为真则执行循环体,一旦遇到ENDDO 就自动返回到DOWHILE 重新判断循环条件是否成立,以决定是否循环。Visual foxpro程序设计基础【例】编程求123100clearS=0&用于累加和I=1&循环变量DO WHILE I=100 S=S+I I=I+1ENDDO?123100,SVisual foxpro程序设计基础记录指针控制的循环 实现这种循环的方法:利用逻辑表达式.NOT.EOF()作为控制条件,在循环体内设置指针移动指令,当记录指针指向表中最后一条

11、记录后面时,条件.not.eof()为.F.,退出循环 DO WHILE NOT.EOF()skip ENDDOVisual foxpro程序设计基础【例】逐条显示在STUDENT数据库的STUD表中性别为男的所有记录。OPEN DATABASE STUDENTUSE STUDDO WHILE.NOT.EOF()IF 性别=男 DISPLAY ENDIF SKIPENDDOCLOSE DATABASEVisual foxpro程序设计基础(2)、格式2 DO WHILE LOOP EXIT ENDDO LOOP语句:强行返回到循环开始语句。EXIT语句:强行跳出循环,接着执行ENDDO后的语句

12、 Visual foxpro程序设计基础流程图循环语句中的选择项EXIT,是退出循环语句,可以放在循环体语句中的任何位置上。当执行EXIT时,跳出循环去执行ENDDO 后面的语句。通常,EXIT 是在条件语句控制下,而当条件得到满足时便跳出循环;否则永远不能执行EXIT 后面的循环体语句,形成不合理的程序结构。LOOP 语句一定要用在DOWHILE的循环体内才有意义,LOOP 语句使它后面的语句在本次循环时不被执行,它可以出现在循环体内任何位置,多包含在分支语句中。必须注意的是,在具有多重DOWHILE 棗ENDDO 嵌套的程序中,LOOP 只返回到与它本身所处的内层循环体相匹配的DOWHIL

13、E 语句。Visual foxpro程序设计基础【例1】编程显示STUDENT数据库的STUD表中除李宁以外的所有记录。OPEN DATABASE STUDENTUSE STUDDO WHILE.NOT.EOF()IF 姓名=李宁SKIPLOOPENDIFDISPLAY SKIPENDDOCLOSE DATABASEVisual foxpro程序设计基础【例2】输入一个数,判断是否为素数。(除1以外,只能被1和它本身整除的自然数叫素数,2是唯一的偶素数)INPUT 输入一个数:TO Ni=2DO WHILE i=N&以上的DO WHILE循环为正常退出?str(n)+是素数ENDIFVisua

14、l foxpro程序设计基础2、指定次数的循环(1)格式FOR=TO STEP LOOP EXIT ENDFOR|NEXT Visual foxpro程序设计基础使用FOR循环语句的有关说明:省略STEP,则步长为默认值1;可为负值,当为负值时,初值要大于终值。初值、终值和步长都可以是数值表达式,但这些表达式仅在循环语句开始执行时计算一次。循环语句执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数;可以在循环体内改变循环变量的值,但会改变循环执行次数 EXIT和LOOP命令可以出现在循环体内。执行LOOP命令时,结束本次循环,循环变量增加一个步长值,返回FOR循环头判断循环条件是否

15、成立。执行EXIT命令时,程序跳出循环,执行循环尾后面的语句 循环次数计算公式:int(终值-初值)/步长)+1Visual foxpro程序设计基础流程图for语句循环变量赋初值在范围内?循环体for循环后的语句循环变量+1NYVisual foxpro程序设计基础程序执行流程 给变量赋初值 判断变量的初值是否小于等于终值 若不是,则循环结束 若是,则执行循环体 变量=变量+步长 转Visual foxpro程序设计基础【例 1】从 键 盘 输 入10 个 数,编 程 找 出 其 中 的 最 大 值 和 最 小 值。程序文件名为PROG23.PRG。SET TALK OFFCLEARINPU

16、T“请从键盘输入一个数:”TO ASTORE A TO MAX,MINFOR I=2 TO 10 INPUT“请从键盘输入一个数:”TO A IF MAXA MIN=A ENDIFENDFOR?“最大值为:”,MAX?“最小值为:”,MINSET TALK ONRETURN Visual foxpro程序设计基础 例2 找出教师档案中最高的工资金额CLEARUSETEACHERMAX=基本工资T=RECCOUNT()&表中记录的总数FORI=1TOTIFMAX 基本工资MAX=基本工资ENDIFSKIPENDFORUSE?MAXVisual foxpro程序设计基础【例3】编程实现123100

17、(do while循环实现)S=0I=1DO WHILE I=100S=S+I I=I+1ENDDO?S(for循环实现)S=0FOR I=1 TO 100S=S+IENDFOR?SVisual foxpro程序设计基础3、针对记录的循环DO WHILE.NOT.EOF()IF 条件表达式1 语句序列 ENDIF SKIPENDDO等价于:指针型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数。SCAN范围FOR条件表达式1 WHILE 条 件 表 达 式 2 语句序列 ENDSCAN DO WHILE.NOT.EOF()IF 条件表达式1 语句序列 ENDIF S

18、KIPENDDO等价于Visual foxpro程序设计基础说明:SCAN 循环针对当前表进行循环,子句表示记录范围,缺省值为ALL。语句执行时在 中依次寻找满足FOR 条件或WHILE 条件的记录,并对找到的记录执行。Scan 循环,隐含了skip 和判断记录指针是否到文件尾的功能。Visual foxpro程序设计基础SCAN语句初设记录指针在范围内?满足FOR条件?LOOPEXIT循环体ENDSCANSCAN循环后的语句记录指针+1NYYN(1)流程图Visual foxpro程序设计基础(2)程序执行流程 如果选择了“for 条件”,visualfoxpro 先查找当前表中是否存在满足

19、条件的记录。如果不存在,则不执行循环体中的语句,结束循环,执行endscan 后的语句。如果存在,则执行循环体中的语句,顺序查找满足条件的下一条记录。如此继续下去,直到不存在满足条件的记录,才结束循环。如果没有选择了“for 条件”,只有当前表不是空表,visualfoxpro 就先对当前记录执行循环体的语句,再将记录指针下移一条记录,并执行循环体的语句。如此继续下去,直到记录指针指向文件尾,才结束循环。Visual foxpro程序设计基础【例1】显示教师档案中女教师的姓名和职称USETEACHERSCANFOR 性别=“女”DISP 姓名,职称ENDSCANUSEVisual foxpro

20、程序设计基础【例2】逐条显示在STUDENT数据库的STUD表中性别为男的所有记录。OPEN DATABASE STUDENTUSE STUDSCAN FOR 性别=男 DISPLAYENDSCANCLOSE DATABASEScan 循环OPEN DATABASE STUDENTUSE STUDDO WHILE.NOT.EOF()IF 性别=男 DISPLAY ENDIF SKIPENDDOCLOSE DATABASEDowhile 循环Visual foxpro程序设计基础循环语句总结 do while 最常用,可用于多种常用场合。for 语句多用于数值运算及循环次数预先确定的场合 sca

21、n 语句专为数据库操作设计(1)三条语句的比较(2)使用循环语句的要点n 必须有操作来驱动循环的推进。如For语句里循环变量的自加(i=i+1),do while里的skip语句n 循环必须设定终结条件,以使循环停止下来。Visual foxpro程序设计基础练一练 1、用两种循环步长值来求1+2+3+。50 的值 2、求30!(分别用dowhile 循环和for 循环做)3、输入学生成绩,并要求:成绩小于60 分时,输出“不及格”;成绩在60 69 分之间时,输出“及格”;成绩在70 79 之间时,输出“中”;当成绩在80 89 之间时,输出“良”;当成绩在90 100 之间时,输出“优”。4、用“SCANENDSCAN 循环结构”显示“学生信息.dbf”文件中“英语成绩”大于等于75 的记录。Visual foxpro程序设计基础

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁