文档详情

Visual Foxpro 程序设计12周教案.ppt

发布:2018-05-14约3.72千字共18页下载文档
文本预览下载声明
第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之间的偶数和、奇数和?如何计
显示全部
相似文档