- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 程序设计 7.2 程序的控制结构 7.2.3 循环结构 在程序设计中,有时需要从某处开始有规律地反复执行某些类似的操作,这些类似的操作一般用循环结构程序设计来解决。在Visual FoxPro中,提供了“当型”、“步长型”和“表扫描型”循环结构。 思考题 编写一个程序,使之能够输出如下图形:(注意*和*之间有空格) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 说明: (1)当型循环执行的过程是:根据条件的逻辑值,进行判断。如果条件的逻辑值为.T.,则执行DO WHILE和ENDDO之间的[命令序列] (也称为循环体),当[命令序列]包含的所有命令执行完毕后,程序自动返回到DO WHILE语句,每执行一遍就判断一次DO WHILE语句中的条件。如果条件仍然为.T.,则继续执行DO WHILE和ENDDO之间的[命令序列],直到条件的逻辑值为.F.,结束循环,转去执行ENDDO之后的第一条命令。 (2)DO WHILE和ENDDO语句应配对使用,各占一行。 (3)在[命令序列]的适当位置可以放置EXIT和LOOP语句,用以对循环过程作特殊处理。EXIT的功能是:终止本层循环命令。LOOP语句的功能是:终止本次循环命令。EXIT和LOOP语句只能在循环结构中使用。 (4)在命令序列中可以嵌套IF……ENDIF、DO CASE……ENDCASE、DO WHILE……ENDDO、FOR……ENDFOR、SCAN……ENDSCAN等程序结构。 1、当型循环结构 格式: DO WHILE 条件 [命令序列] ENDDO [例7-13] 鸡兔同笼问题。设鸡和兔共有头38个,脚138个,问鸡和兔各为多少只? 问题分析:设鸡为cocks只,兔为rabbits只,则有:cocks+rabbits=38;2*cocks+4*rabbits=138。可令鸡和兔的头数之和或者脚数之和为一变量,如本题令二者脚数之和foots为变量,开始令cocks=0,foots=0,用循环进行判断是否foots138,如果是,则进行如下运算:cocks=cocks+1; rabbits=38-cocks;foots=2*cocks+4*rabbits;再进行循环判断,直到foots138不成立(即foots=138),循环结束,输出结果。该题框图如下图所示: CLEAR cocks=0 foots=0 DO WHILE foots138 cocks=cocks+1 rabbits=38-cocks foots=2*cocks+4*rabbits ENDDO ?鸡的数量为:,cocks ?兔的数量为:,rabbits RETURN 2、步长型循环结构 格式: FOR 循环变量=初值 TO 终值 [STEP 步长值] [命令序列] ENDFOR|NEXT 说明: (1)初值、终值、步长值都是数值表达式;当步长值是1时,可以省略STEP子句。 (2)ENDFOR或NEXT语句为循环终端语句,用以标明本循环结构的终点。该语句必须和FOR语句配对使用。 (3)该循环结构的执行过程是:首先将初值赋值给循环变量,然后判断循环变量的值是否超过终值(这里超过终值的含义是:如果步长值为正数,则循环变量的值大于终值为超过,如果步长值为负数,则循环变量的值小于终值为超过),不超过就执行循环体,遇到ENDFOR或NEXT语句,自动使循环变量增加一个步长值,再将循环变量的值与终值比较,如果循环变量的值不超过终值,就再执行循环体,不断循环执行。如果循环变量的值超过终值则不执行循环体,而转去执行ENDFOR或NEXT语句后面的第一条语句。 (4)在循环体内的适当位置也可以放置EXIT和LOOP语句,作用和用法与当型循环结构类似。 [例7-15] 求1+2+3+…+99+100的值。 问题分析:采用累加的办法,用循环变量产生1、2、3、…、99、100这些数。用s保存累加和,s的初始值为0,每次循环将s加上循环变量的值,再赋值给变量s,循环结束即求得S。程序为: CLEAR s=0 FOR x=1 TO 100 s=s+x ENDFOR ?1--100自然数累加和是:,s RETURN 思考题:如何计算1到100之间的偶数和、奇数和?如何计
文档评论(0)