程序的三种基本控制结构

上传人:kms****20 文档编号:39960568 上传时间:2018-05-21 格式:DOC 页数:35 大小:188.50KB
返回 下载 相关 举报
程序的三种基本控制结构_第1页
第1页 / 共35页
程序的三种基本控制结构_第2页
第2页 / 共35页
程序的三种基本控制结构_第3页
第3页 / 共35页
程序的三种基本控制结构_第4页
第4页 / 共35页
程序的三种基本控制结构_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《程序的三种基本控制结构》由会员分享,可在线阅读,更多相关《程序的三种基本控制结构(35页珍藏版)》请在金锄头文库上搜索。

1、 程序的三种基本控制结构程序的三种基本控制结构顺序结构顺序结构 选择结构选择结构 循环结构循环结构一、 顺序结构:顺序语句由语句序列组成,程序执行时,顺序结构:顺序语句由语句序列组成,程序执行时,按照语句的顺序,从上而下,一条一条地顺序执行按照语句的顺序,从上而下,一条一条地顺序执行如:如:store Visual FoxPro to nameAge = 4? My name is + name + , I am ;+ str(Age) + years old二、选择结构:分支语句根据一定的条件决定执行哪一部二、选择结构:分支语句根据一定的条件决定执行哪一部分的语句序列。分的语句序列。1、 单

2、分支结构单分支结构格式:格式: ifendif例程例程 1:clearuse sbwait 是否打印?(是否打印?(y/n) to aif upper(a)=Ywait 请接好打印机!按任意键后打印请接好打印机!按任意键后打印list to printendif2、 双分支选择双分支选择格式:格式: ifelseendif例程例程 2: clearset talk offaccept 请输入密码:请输入密码: to mmif mm=80?成绩良好成绩良好case nscore=70?成绩中等成绩中等case nscore=60?成绩较差成绩较差case nscore=0?成绩不及格成绩不及格o

3、therwise?成绩应大于成绩应大于 0,数据有错,数据有错endcase?程序执行完毕程序执行完毕set talk on三、循环结构:循环语句使同一个语句组根据一定的条件三、循环结构:循环语句使同一个语句组根据一定的条件执行若干次。执行若干次。 有三种循环语句:有三种循环语句:DO WHILEFORSCAN1、do while 循环语句循环语句语句格式语句格式 1DO WHILE 逻辑表达式逻辑表达式ENDDO例程例程 1 1:计算:计算 1+2+31001+2+3100setset talktalk offoffclearclears=0s=0I=1I=1DoDo whilewhile

4、IexitENDDOLoopLoop 语句是循环短路语句,当程序执行到语句是循环短路语句,当程序执行到 looploop 语句语句时,被迫结束本次循环,不再执行时,被迫结束本次循环,不再执行 looploop 后面至后面至 enddoenddo 之间之间的语句序列,而是返回的语句序列,而是返回 dodo whilewhile 处重新判断条件处重新判断条件ExitExit 语句是循环断路语句。当程序执行到语句是循环断路语句。当程序执行到 exitexit 语句语句时,被迫中断循环,转去执行时,被迫中断循环,转去执行 enddoenddo 语句后的语句。语句后的语句。例程例程 2 2:循环输入学生

5、姓名,查找并显示该学生的情:循环输入学生姓名,查找并显示该学生的情况,直到用户停止输入。况,直到用户停止输入。SetSet talktalk offoffClearClearStoreStore yy toto ynynUseUse 学生学生DoDo whilewhile .t.t.AcceptAccept 请输入学生姓名请输入学生姓名:to:to namenameLocateLocate forfor 姓名姓名=name=nameIfIf found()found()?学号学号+学号学号?姓名姓名+姓名姓名elseelse?没有没有+name+name+这个学生这个学生endifendifw

6、aitwait 是否继续查找(是否继续查找(y/ny/n)?to?to ynynifif upper(yn)=Yupper(yn)=Y? ?looploopelseelseexitexitendifendifenddoenddo?程序结束程序结束useusesetset talktalk ononreturnreturn读程练习:1、setset talktalk offoffuseuse 学生学生name=space(8)name=space(8)10,510,5 saysay 请输入学生姓名请输入学生姓名getget namenamereadreadlocatelocate forfor

7、姓名姓名=name=nameifif found()found()dispdispelseelse12,512,5 saysay 该单位无此人该单位无此人endifendifsetset talktalk ononuseusereturnreturn2、统计学生表中男女学生人数统计学生表中男女学生人数setset talktalk offoffclearclearuseuse 学生学生storestore 0 0 toto nman,nwomannman,nwomandodo whilewhile !eof()!eof()ifif 性别性别=男男nman=nman+1nman=nman+1el

8、seelsenowman=nwoman+1nowman=nwoman+1endifendifskipskipenddoenddo?男生人数为:男生人数为:+str(nman)+str(nman)?女生人数为:女生人数为:+str(nwoman)+str(nwoman)useusesetset talktalk ononreturnreturn3 3、逐条输出学生表中、逐条输出学生表中 19841984 年出生的学生记年出生的学生记录录clearclearuseuse 学生学生indexindex onon year(year(出生日期出生日期) ) tagtag csrqcsrqseeksee

9、k 19841984dodo whilewhile year(year(出生日期出生日期)=1984)=1984dispdispskipskipenddoenddouseusereturnreturn4 4 1 1100100 之间全部奇数之和之间全部奇数之和setset talktalk offoffstorestore 0 0 toto x,yx,ydodo whilewhile .t.t.x=x+1x=x+1dodo casecasecasecase int(x/2)=x/2int(x/2)=x/2looploopcasecase x=100x=100exitexitotherwiseo

10、therwisey=y+xy=y+xendcaseendcaseenddoenddo?0?0100100 之间的奇数之和为:之间的奇数之和为:,y,ysetset talktalk ononreturnreturn作业:作业:1 1、使用、使用 dodo whilewhile 语句逐条显示学生表中的每语句逐条显示学生表中的每一条记录一条记录2 2、算出、算出 1 1100100 之间的所有偶数的和之间的所有偶数的和3 3、从键盘输入一个整数,求出此整数的阶乘、从键盘输入一个整数,求出此整数的阶乘2 2、forfor 循环语句循环语句dodo whilewhile 语句适用于循环次数未知的循环语

11、句适用于循环次数未知的循环forfor 语句适用于循环次数已知的循环语句适用于循环次数已知的循环语句格式语句格式FOR 循环变量循环变量 = 初值初值 TO 终值终值 STEP 步长步长语句组语句组ENDFOR/NEXT能能循环结构的执行过程是:先为循环变量设置初值(该变循环结构的执行过程是:先为循环变量设置初值(该变量一般为数值型内存变量)量一般为数值型内存变量) ,然后判断其值是否超过终值。,然后判断其值是否超过终值。若没超过,执行循环体,遇到若没超过,执行循环体,遇到 endforendfor 时使循环变量增加一时使循环变量增加一个步长值(步长省略,则默认为个步长值(步长省略,则默认为

12、1 1) ,然后返回到,然后返回到 forfor 语句语句处,将循环变量的当前值与循环终值比较,没有超过,继处,将循环变量的当前值与循环终值比较,没有超过,继续执行循环体,直至循环变量的当前值超过终值或执行到续执行循环体,直至循环变量的当前值超过终值或执行到exitexit 语句,程序才退出循环,执行语句,程序才退出循环,执行 enddoenddo 后面的语句。后面的语句。说明:说明:1 1、FORFOR 语句适用于循环次数已知的情况语句适用于循环次数已知的情况2 2、如果没有给出步长,步长缺省为、如果没有给出步长,步长缺省为 1 13 3、步长可以是正数、负数、步长可以是正数、负数当当 ST

13、EP0STEP0,变量,变量=终值时,语句组执行终值时,语句组执行例程例程 1 1:forfor I=1I=1 toto 1010?I?Iendforendfor结果为:结果为:1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1010例程例程 2 2:forfor I=10I=10 toto 1 1 stepstep 4 4?I?Iendforendfor结果为:结果为:10106 62 2例程例程 3 3:计算:计算 1+2+31001+2+3100s=0s=0forfor I=1I=1 toto 100100s=s+Is=s+Iendforendfor?s?s例程例

14、程 4 4:求所有的水仙花数(:求所有的水仙花数(153=1153=13 3+5+53 3+3+33 3)clearclearforfor m=100m=100 toto 999999a=int(m/100)a=int(m/100)b=int(mod(m,100)/10)b=int(mod(m,100)/10)c=m%10c=m%10ifif m=a3+b3+c3m=a3+b3+c3?m?mendifendifendforendforreturnreturn例程例程 5 5 从键盘输入从键盘输入 1010 个数,编程找出其中的最大值和个数,编程找出其中的最大值和最小值最小值setset tal

15、ktalk offoffclearclearinputinput “ “请输入一个数:请输入一个数:” ” toto a astorestore a a toto max,minmax,min forfor I=2I=2 toto 1010inputinput “ “请输入一个数:请输入一个数:” ” toto a aifif maxaminamin=amin=aendifendifendforendfor? ?” ”最大值为:最大值为:” ”,maxmax? ?” ”最小值为:最小值为:” ”,min,minsetset talktalk onon程序练习:程序练习:1 1、设有如下程序、设有如下程序setset talktalk offoffclearclearuseuse gzgzdodo whilewhile !eof()!eof()ifif 基本工资基本工资=800=800skipskiplooploopendifendifdispdispskipskipe

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

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号