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