程序的基本控制结构.ppt

上传人:za****8 文档编号:7160060 上传时间:2020-03-14 格式:PPT 页数:42 大小:360.50KB
返回 下载 相关 举报
程序的基本控制结构.ppt_第1页
第1页 / 共42页
程序的基本控制结构.ppt_第2页
第2页 / 共42页
程序的基本控制结构.ppt_第3页
第3页 / 共42页
点击查看更多>>
资源描述
程序的基本控制结构 灵璧三中王川 本节课要点 1 顺序结构2 选择结构3 循环结构 一 顺序结构 顺序结构是在程序执行时 根据程序中语句的书写顺序依次执行的命令序列 VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句 顺序结构是程序中最基本的常用的结构 1 流程图 2 程序执行流程按照语句排列的先后顺序 一条接一条地依次执行 3 例题从键盘输入半径 求圆的面积 CLEARINPUT 请输入圆的半径 TORS 0S 3 14 R 2 该圆的面积为 S执行程序时 首先在屏幕上提示用户输入圆的半径 当输入半径并按回车键后 计算机显示出圆的面积 二 选择结构 实际应用中 常需要先判断后处理 根据不同情况做不同的处理 选择结构就是对指定的条件进行判断 如果条件成立 则执行指定的语句序列 Visualfoxpro中选择结构有可分为 单分支选择结构 双分支选择结构 多分支选择结构 1 单分支选择结构单分支选择结构只有一个程序分支 只有满足指定的条件 才能执行该程序分支的语句 1 格式IfEndif参数说明 If表示选择结构开始 endif表示选择结构结束 它们必须成对使用 缺一不可 条件 是一个逻辑表达式 语句组 由一组visualfoxpro的程序语句组成 2 程序流程程序执行到单分支选择结构时 首先检查if后面的 条件 如果满足条件 即该逻辑表达式的值为真 T 则执行 语句组 再执行endif后面的语句 否则 不执行 语句组 直接执行endif后面的语句 3 流程图 4 例题键盘输入一个实数 计算并输出其绝对值 Input 请输入一个实数 toxIfx 0X xEndif 其绝对值 xreturn 2 双分支选择结构双分支选择结构有两个程序分支 无论是否满足指定的条件 都能执行其中一个程序分支 并且只能执行一个程序分支 1 格式IfElseEndif 参数说明 If表示选择结构开始 endif表示选择结构结束 它们必须成对使用 缺一不可 条件 是一个逻辑表达式 语句组 由一组visualfoxpro的程序语句组成 If else endif要各占一行 不能在同一行出现 2 程序执行流程程序执行到双分支选择结构时 首先检查if后面的 条件 如果满足条件 即该逻辑表达式的值为真 T 则执行 语句组1 否则 执行 语句组2 语句组1 或 语句组2 执行完后 再执行endif后面的语句 4 例题设计一个查询程序 希望当待查人不存在时有信息提示 clearaccept 请输入待查人姓名 toxmlocatefor姓名 xmif not eof displayelsemessagebox 查无此人 endifusereturn 3 流程图 3 多分支选择结构多分支选择结构通常有多个程序分支 但最多执行其中一个程序分支 也可能所有程序分支都不执行 1 2 流程图 3 程序执行流程程序执行到多分支选择结构时 首先检查第一个case后面的 条件1 如果满足条件 则先执行 命令序列1 再执行endcase后面的语句 否则 继续检查第二个case后的 条件2 如果满足条件 则先执行 命令序列2 再执行endcase后面的语句 如此进行下去 如所有case后面的条件都不满足 但有otherwise选项是 执行对应的 命令序列 没有otherwise选项时 直接执行endcase后面的语句 4 例题 例1 假设收入 P 与税率 R 的关系如下表 编程求税金 0P 800R 0 05800 P 20000 082000 P 50000 1P 5000INPUT 请输入收入 TOPDOCASECASEP 800R 0CASEP 2000R 0 05CASEP 5000R 0 08OTHERWISER 0 1ENDCASETAX P R 税金为 TAX 例2 给出一百分制成绩 要求输出成绩等级 A B C D E 90分以上为 A 80 89分为 B 70 79分为 C 60 69分为 E 三 循环结构 实际生活中有些操作需要重复进行 这些问题反映到程序中就是循环结构 循环结构程序可以根据指定的条件 重复执行某个程序段 visualfoxpro提供了3种循环结构 基于条件的循环 针对记录的循环 指定次数的循环 一个循环结构一般应具备如下几个条件 1 循环的初始条件 给循环变量赋初值 2 循环头 循环语句的起始 设置 判断循环条件 3 循环尾 循环语句的结尾 4 循环体 位于循环头和循环尾之间 循环控制重复执行的语句序列 循环结构流程图 1 基于条件的循环 1 格式1DOWHILEENDDO说明 语句格式中的称为循环条件 DOWHILE和ENDDO之间的语句序列称为循环体 是需要多次重复执行的程序部分 由它来完成规定的数据处理操作 流程图 程序执行流程语句执行时 若DOWHILE子句的循环条件为假 循环就结束 然后执行ENDDO子句后面的语句 为真则执行循环体 一旦遇到ENDDO就自动返回到DOWHILE重新判断循环条件是否成立 以决定是否循环 例 编程求1 2 3 100 clearS 0 用于累加和I 1 循环变量DOWHILEI 100S S II I 1ENDDO 1 2 3 100 S 记录指针控制的循环 实现这种循环的方法 利用逻辑表达式 NOT EOF 作为控制条件 在循环体内设置指针移动指令 当记录指针指向表中最后一条记录后面时 条件 not eof 为 F 退出循环DOWHILENOT EOF skipENDDO 例 逐条显示在STUDENT数据库的STUD表中性别为 男 的所有记录 OPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF性别 男 DISPLAYENDIFSKIPENDDOCLOSEDATABASE 2 格式2DOWHILE LOOP EXIT ENDDO LOOP语句 强行返回到循环开始语句 EXIT语句 强行跳出循环 接着执行ENDDO后的语句 流程图 循环语句中的选择项EXIT 是退出循环语句 可以放在循环体语句中的任何位置上 当执行EXIT时 跳出循环去执行ENDDO后面的语句 通常 EXIT是在条件语句控制下 而当条件得到满足时便跳出循环 否则永远不能执行EXIT后面的循环体语句 形成不合理的程序结构 LOOP语句一定要用在DOWHILE的循环体内才有意义 LOOP语句使它后面的语句在本次循环时不被执行 它可以出现在循环体内任何位置 多包含在分支语句中 必须注意的是 在具有多重DOWHILE棗ENDDO嵌套的程序中 LOOP只返回到与它本身所处的内层循环体相匹配的DOWHILE语句 例1 编程显示STUDENT数据库的STUD表中除 李宁 以外的所有记录 OPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF姓名 李宁 SKIPLOOPENDIFDISPLAYSKIPENDDOCLOSEDATABASE 例2 输入一个数 判断是否为素数 除1以外 只能被1和它本身整除的自然数叫素数 2是唯一的偶素数 INPUT 输入一个数 TONi 2DOWHILEi N 以上的DOWHILE循环为正常退出 str n 是素数 ENDIF 2 指定次数的循环 1 格式FOR TO STEP LOOP EXIT ENDFOR NEXT 使用FOR循环语句的有关说明 省略STEP 则 步长 为默认值1 可为负值 当为负值时 初值 要大于 终值 初值 终值 和 步长 都可以是数值表达式 但这些表达式仅在循环语句开始执行时计算一次 循环语句执行过程中 初值 终值和步长是不会改变的 并由此确定循环的次数 可以在循环体内改变循环变量的值 但会改变循环执行次数 EXIT和LOOP命令可以出现在循环体内 执行LOOP命令时 结束本次循环 循环变量增加一个步长值 返回FOR循环头判断循环条件是否成立 执行EXIT命令时 程序跳出循环 执行循环尾后面的语句 循环次数计算公式 int 终值 初值 步长 1 流程图 程序执行流程 给变量赋初值 判断变量的初值是否小于等于终值 若不是 则循环结束 若是 则执行循环体 变量 变量 步长 转 例1 从键盘输入10个数 编程找出其中的最大值和最小值 程序文件名为PROG23 PRG SETTALKOFFCLEARINPUT 请从键盘输入一个数 TOASTOREATOMAX MINFORI 2TO10INPUT 请从键盘输入一个数 TOAIFMAXAMIN AENDIFENDFOR 最大值为 MAX 最小值为 MINSETTALKONRETURN 例2 找出教师档案中最高的工资金额CLEARUSETEACHERMAX 基本工资T RECCOUNT 表中记录的总数FORI 1TOTIFMAX 基本工资MAX 基本工资ENDIFSKIPENDFORUSE MAX 例3 编程实现1 2 3 100 dowhile循环实现 S 0I 1DOWHILEI 100S S II I 1ENDDO S for循环实现 S 0FORI 1TO100S S IENDFOR S 3 针对记录的循环 DOWHILE NOT EOF IF 条件表达式1 语句序列 ENDIFSKIPENDDO 等价于 指针 型循环控制语句 即根据用户设置的表中的当前记录指针 决定循环体内语句的执行次数 SCAN 范围 FOR 条件表达式1 WHILE 条件表达式2 语句序列 ENDSCAN 说明 SCAN循环针对当前表进行循环 子句表示记录范围 缺省值为ALL 语句执行时在中依次寻找满足FOR条件或WHILE条件的记录 并对找到的记录执行 Scan循环 隐含了skip和判断记录指针是否到文件尾的功能 1 流程图 2 程序执行流程如果选择了 for条件 visualfoxpro先查找当前表中是否存在满足条件的记录 如果不存在 则不执行循环体中的语句 结束循环 执行endscan后的语句 如果存在 则执行循环体中的语句 顺序查找满足条件的下一条记录 如此继续下去 直到不存在满足条件的记录 才结束循环 如果没有选择了 for条件 只有当前表不是空表 visualfoxpro就先对当前记录执行循环体的语句 再将记录指针下移一条记录 并执行循环体的语句 如此继续下去 直到记录指针指向文件尾 才结束循环 例1 显示教师档案中女教师的姓名和职称USETEACHERSCANFOR性别 女 DISP姓名 职称ENDSCANUSE 例2 逐条显示在STUDENT数据库的STUD表中性别为 男 的所有记录 循环语句总结 dowhile最常用 可用于多种常用场合 for语句多用于数值运算及循环次数预先确定的场合scan语句专为数据库操作设计 1 三条语句的比较 2 使用循环语句的要点 必须有操作来驱动循环的推进 如For语句里循环变量的自加 i i 1 dowhile里的skip语句循环必须设定终结条件 以使循环停止下来 练一练 1 用两种循环步长值来求1 2 3 50的值2 求30 分别用dowhile循环和for循环做 3 输入学生成绩 并要求 成绩小于60分时 输出 不及格 成绩在60 69分之间时 输出 及格 成绩在70 79之间时 输出 中 当成绩在80 89之间时 输出 良 当成绩在90 100之间时 输出 优 4 用 SCAN ENDSCAN循环结构 显示 学生信息 dbf 文件中 英语成绩 大于等于75的记录 谢谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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