XXXX年第6章程序设计基础课件_第1页
XXXX年第6章程序设计基础课件_第2页
XXXX年第6章程序设计基础课件_第3页
XXXX年第6章程序设计基础课件_第4页
XXXX年第6章程序设计基础课件_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础第六章程序设计基础第六章1本章要点6.1程序6.2选择结构6.3循环结构本章要点6.1程序2程序设计的概念VFP有两种工作方式:交互方式和程序方式。交互方式是在命令窗口中直接输入命令或通过选择菜单来执行VFP命令。但在实际应用中,许多任务是要执行一组命令来完成的。如果采用在命令窗口中逐条输入命令的方式进行,不仅效率不高,而且容易出错。特别是当该任务要反复执行,或者当处理的问题较复杂时,这种交互方式几乎是不可行的,应当采用程序方式。程序设计的概念VFP有两种工作方式:交互方式和程序方式。36.1程序程序是能够完成指定任务的命令序列。将这组命令序列以文件形式保存,该文件称为程序文件或命令文件。在运行程序时,系统将按照一定的次序自动执行其中的各条命令,从而实现通过程序控制自动执行一系列操作,以完成指定任务。6.1程序程序是能够完成指定任务的命令序列。将这组命令4程序文件的基本操作一、程序文件的建立和编辑命令格式:modicomm[<文件名>]功能:建立或修改指定的程序文件。说明:(1)系统默认的程序文件扩展名为.prg(2)若用户指定了<文件名>,执行该命令时,系统首先检索磁盘文件,如果此文件存在,则打开该文件,若指定文件不存在,则建立一个新的空程序文件,其文件名即为指定的<文件名>。程序文件的基本操作一、程序文件的建立和编辑5二、保存命令文件(ctrl+w)三、运行命令文件(do文件名)二、保存命令文件(ctrl+w)6例如6.1统计第一学期有考试成绩的学生人数与平均成绩设置步骤:(1)创建文件:modicommMyProg1(2)编写代码(3)保存文件(4)结束编程(5)调试、运行程序,直到程序完全正确例如6.1统计第一学期有考试成绩的学生人数与平均成绩设置步78常用命令1.程序注释语句:格式一:NOTE[<注释字符串>]格式二:*[<注释字符串>]格式三:&&[<注释字符串>]8常用命令1.程序注释语句:892.RETURN命令格式:return功能:终止本程序的执行,把程序控制权返回给本程序的调用者。如果一个程序中没有包含return命令,当执行完本程序最后一条命令后,系统同样也把程序控制权返回给本程序的调用者。92.RETURN93、输入输出命令(交互式命令)程序的正确运行,必然需要操作人员与内存变量之间进行信息交流。VFP提供了许多进行这类数据交流的命令。3、输入输出命令(交互式命令)10ACCEPT语句语句格式:ACCEPT[<字符表达式>]to<内存变量>

执行该命令时,暂停程序的运行,显示命令中的字符表达式作为提示信息,等待用户从键盘输入字符串。系统将接受的字符串存入指定的内存变量,程序继续运行。功能说明:①系统将用户的输入一律作为字符串,输入时不必加定界符,以回车结束输入;②可选的提示信息可以是字符型常量、变量或表达式。如果是字符串常量,则必须使用字符串定界符。例如:查询指定学生的信息(文件名例6-1)ACCEPT语句语句格式:ACCEPT[<字符表达式>]11INPUT语句语句格式:INPUT[<字符表达式>]to<内存变量>功能注释:①用户输入的数据可以是数值型、逻辑型、日期型、日期时间型或字符型,以回车结束输入;②输入字符串时必须加定界符;输入逻辑型常量时要用圆点定界,如(.T.,.F.);输入日期型常量时要用大括号,如{^1962/06/12};③INPUT命令一般是用来输入数值型数据。例如:查询指定年份出生的学生的信息(文件名例6-2)INPUT语句语句格式:INPUT[<字符表达式>]to1213常用命令4.设置是否输出非显示命令的执行结果命令格式:SETTALKON|OFF功能:VFP在执行一些非显示命令(如SELE命令)时,将把执行结果等信息送到VFP主窗口、状态栏或用户自定义窗口里。可使用开关SETTALKON/OFF显示或关闭这些提示信息。如在例6.1的程序的第一行加上命令SETTALKON,对比其运行结果。13常用命令4.设置是否输出非显示命令的执行结果13结构化程序的基本结构一、顺序结构分析书例6.3(myprog2)二、选择结构三、循环结构结构化程序的基本结构一、顺序结构分析书例6.3(mypr146.2选择结构1、条件语句(IF…ENDIF)2、IFF函数3、IF语句的嵌套4、分支语句(DOCASE…ENDCASE)6.2选择结构151、条件语句语句格式:IF<条件><语句序列1>[ELSE<语句序列2>]ENDIF①<条件>是逻辑表达式。当程序执行到IF语句时,首先判断<条件>是否成立。如果<条件>为“真”时,则执行<语句序列1>语句,否则(即<条件>为“假”)执行<语句序列2>。IF语句执行完毕后,再执行ENDIF后面的语句。1、条件语句16②选择结构中可以没有ELSE部分。这样的话,当程序执行到IF语句时,首先判断<条件>是否成立。如果<条件>为“真”时,则执行<语句序列1>语句,否则直接转向ENDIF后面的语句去执行。③IF和ENDIF必须成对出现,IF是该结构的入口,ENDIF是该结构的出口。④IF语句只能在程序中使用,不能在命令窗口中使用⑤为了使程序的结构层次清晰、减少编写错误,增加程序的可读性,一般按缩进(锯齿形)格式书写。即将该结构的入口和出口语句写在同一纵坐标位置上,而将嵌套其中的其他结构语句向右缩若干格。②选择结构中可以没有ELSE部分。这样的话,当程序执行到IF17IF语句举例1CLEARinput"请输入一个数:"TOxIFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF?STR(x)+yRETURN判断从键盘输入的任何一个整数的奇偶。若不是整数,则取整判断。IF语句举例1CLEAR判断从键盘输入的任何一个整数的奇偶。182、IFF函数格式:IIF(<条件>,<表达式1>,<表达式2>)说明:<条件>是逻辑表达式。当<条件>为“真”时,该表达式的返回值为<表达式1>,否则,该表达式的返回值为>,<表达式2>。如:z=IIF(x>=y,x,y),将返回x与y中的较大者作为函数的返回值,并赋给z。2、IFF函数19

IIF函数的功能和IF-ELSE-ENDIF语句非常相似,可以用IF语句取代IIF函数,如IIF(x>=y,x,y)可用如下IF语句取代。IFx>=y z=xELSEz=yENDIF有些IF语句也可以用IIF函数代替,但不是所有的。IIF函数的功能和IF-ELSE-ENDIF语句非常相似,20如,判断数的奇偶性程序中的IF语句IFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF相当于IIF(mod(x,2)=0,”是偶数”,“是奇数”)如,判断数的奇偶性程序中的IF语句213、IF语句的嵌套VFP对选择结构中的命令或语句没有特别的规定或限制,只要是合法的VFP命令或语句就行。IF语句也是合法的VFP语句,因此,在IF语句内部也可以包含IF语句,这就是IF语句的嵌套。

3、IF语句的嵌套22IF的嵌套语句举例CLEARinput"请输入一个数:"TOxIFINT(X)=XIFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF?STR(x)+yELSE?"输入的数不是整数。"ENDIFRETURN判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。IF的嵌套语句举例CLEAR判断从键盘输入的任何一个数的奇偶234、分支语句语句格式:DOCASECASE<条件表达式1><语句行序列1>CASE<条件表达式2><语句行序列2>…CASE<条件表达式N><语句行序列N>[OTHERWISE<语句行序列N+1>]ENDCASE功能:根据n个条件表达式的逻辑值,选择执行n+1个语句序列中的一个。4、分支语句功能:24说明:1.当系统执行DOCASE…ENDCASE语句时,依次判断CASE后面的条件是否成立,当发现某个CASE条件成立时,就执行该CASE与下一个CASE之间的语句序列,然后跳出DOCASE结构,转去执行ENDCASE后面的语句。如果所有CASE条件都不成立,则执行OTHERWISE与ENDCASE之间语句序列,然后执行ENDCASE后面的语句。2.DOCASE结构中可以没有OTHERWISE部分。这样的话,当所有CASE条件都不成立时,就直接跳出DOCASE结构,转去执行ENDCASE后面的语句.说明:253.不管有几个CASE条件成立,只有最先成立的那个CASE条件后的语句序列被执行。4.DOCASE和ENDCASE必须成对出现,DOCASE是该结构的入口,ENDCASE是该结构的出口。DOCASE与第一个CASE项之间不能有任何语句。5.与IF语句一样,DOCASE语句只能在程序中使用,不能在命令窗口中使用。6.DOCASE结构一般按缩进格式书写。3.不管有几个CASE条件成立,只有最先成立的那个CASE条26CASE语句举例CLEARinput"请输入一个数:"TOxDOCASECASEINT(X)!=X?"输入的数不是整数"CASEMOD(x,2)=0?"该数是偶数。"CASEMOD(x,2)=0y="该数是奇数。"ENDCASERETURN判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。CASE语句举例CLEAR判断从键盘输入的任何一个数的奇偶性276.3循环结构

循环是程序设计中的一种重要的方法。循环就是程序在执行的过程中,其中的某段代码被重复执行若干次。被重复执行的这段代码称为循环体。VFP中支持循环结构的语句包括:(1)DOWHILE-ENDDO(2)FOR-ENDFOR(3)SCAN-ENDSCAN6.3循环结构循环是程序设计中的一种重要的方法28DOWHILE语句格式:DOWHIL<条件表达式><语句行序列1>[LOOP]<语句行序列2>[EXIT]<语句行序列3>ENDDODOWHILE语句格式:29

当系统执行进入DOWHILE结构时,首先判断循环条件是否成立。如果循环条件成立,则执行DOWHILE与ENDDO之间语句序列(即循环体)。当执行到ENDDO时,返回到DOWHILE,再次判断循环条件是否成立,以确定是否再次执行循环体,如此循环,直到循环条件不成立,结束该循环语句,执行ENDDO后面的语句。当系统执行进入DOWHILE结构时,首先30循环体中可以使用两条特殊的命令:LOOP命令和EXIT命令。如果循环体包含有LOOP命令,那么当执行到LOOP命令时,就结束本次循环(如同执行到ENDDO一样),即不再执行LOOP到ENDDO之间的语句,返回DOWHILE处再判断循环条件是否成立。如果循环体包含有EXIT命令,那么当执行到EXIT命令时,就立即结束该循环语句,执行ENDDO后面的语句。循环体中可以使用两条特殊的命令:LOOP命令和31说明:1.ENDDO必须与DOWHILE成对出现,缺一不可2.LOOP命令和EXIT命令只能用在循环结构中,通常出现在循环体内嵌套的选择语句中。3.避免陷入“死循环”。循环体中必须包含能对<条件>产生影响的命令,否则,若<条件>的值永远为真(.T.),循环将不会结束。这种现象称为“死循环”。说明:324.为了增加程序的可读性,一般按缩进格式书写。5.与IF语句一样,DOWHILE语句只能在程序中使用,不能在命令窗口中使用。4.为了增加程序的可读性,一般按缩进格式书写。33DOWHILE语句举例1例计算1+2+3+…+100的结果clears=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,sreturn循环过程的分析:第1次:(条件i=1满足循环)

S=1i=2第2次:(条件i=2满足循环条件)

S=3i=3第100次:(条件i=100满足循环条件)

S=5050i=101第101次:(条件i=101,不满足循环条件,退出)

计算1+3+…+99clears=0i=1dowhilei<=100s=s+ii=i+2enddoDOWHILE语句举例1例计算1+2+3+…+100的结34二、FOR-ENDFOR循环语句如果事先可以决定循环的次数,使用FOR-ENDFOR语句更加清晰、方便。语句格式:FOR<循环变量名>=<初值>TO<终值>STEP<增量><语句行序列1>[LOOP]<语句行序列2>[EXIT]<语句行序列3>ENDFOR/NEXT二、FOR-ENDFOR循环语句35当系统执行进入FOR循环结构时,首先将初值赋给循环变量,再将循环变量的值与终值比较,判断循环条件是否成立。如果循环变量的值在初值与终值范围内,表示循环条件成立,则执行FOR与ENDFOR之间的语句序列(即循环体),然后循环变量的值增加一个增量,并再次判断循环条件是否成立,以确定是否再次执行循环体。若循环变量的值已超出初值与终值范围,表示循环条件不成立,则结束该循环结构,执行ENDFOR后面的语句。当系统执行进入FOR循环结构时,首先将初值赋给循环变36说明:1.ENDFOR和NEXT是等价的。2.FOR、ENDFOR或NEXT成对出现,缺一不可。3.<初值>、<终值>、<增量>都可以是数值表达式,但它们仅在控制进入循环结构时被计算一次,而在整个循环语句的执行过程中不再改变。4.<增量>是描述循环快慢的量,可以是正值,即递增,也可以是负值,即递减。当增量为1时,STEP可以省掉。若增量为正值,则当循环变量的值小于等于终值时,循环条件成立;若增量为负值,则当循环变量的值大于等于终值时,循环条件成立5.可以在循环体内改变循环变量的值,但循环次数也随之改变。说明:37FOR语句举例例计算1+2+3+…+100的结果clears=0fori=1to100s=s+iendfor?”s=”,sreturn循环过程的分析:第1次:(i=1满足i≤100循环条件)

S=1i=2第2次:(i=2满足i≤100循环条件)

S=3i=3第100次:(i=100满足循环条件)

S=5050i=101第101次:i=101,不满足循环条件,退出循环,执行?”s=”,s语句

FOR语句举例例计算1+2+3+…+100的结果循环过程的38三、循环语句SCAN-ENDSCAN如果需要对数据表指定的若干记录依次执行相同的操作,使用SCAN-ENDSCAN语句更加清晰、方便。语句格式:SCAN[<范围>][FOR<条件>][WHILE<条件>](语句行序列)[LOOP](语句行序列)[EXIT](语句行序列)ENDSCAN三、循环语句SCAN-ENDSCAN39当系统执行进入SCAN循环结构时,记录指针自动、依次地在当前数据表的指定范围内满足条件的记录上移动,对每一条记录执行语句序列(即循环体)。说明:1.<范围>的默认值为ALL。2.SCAN、ENDSCAN成对出现,缺一不可。当系统执行进入SCAN循环结构时,记录指针自动、依次40SCAN语句举例1例逐条显示教师表的每一条记录clearuse教师scandisplayendscanusereturnSCAN语句举例1例逐条显示教师表的每一条记录41SCAN语句举例2例逐条显示教师表中女教师的每一条记录clearuse教师scanfor性别="女"displayendscanusereturnSCAN语句举例2例逐条显示教师表中女教师的每一条记录42在SCAN语句中加LOOP子句改写上述例子clearuse教师scanif性别="女"displayelseloopendifendscanusereturn在SCAN语句中加LOOP子句改写上述例子cl43用FOR语句改写上述例子例逐条显示每位女教师的记录clearuse教师

selecount(*)from教师intoarra记录总数fori=1to记录总数goiif性别="女"dispendifendforusereturn用FOR语句改写上述例子例逐条显示每位女教师的记录44用DOWHILE语句改写上述例子例逐条显示每位女教师的记录clearuse教师dowhile.not.eof()if性别="女"dispendifskipenddousereturn用DOWHILE语句改写上述例子例逐条显示每位女教师的记45演讲完毕,谢谢观看!演讲完毕,谢谢观看!46程序设计基础第六章程序设计基础第六章47本章要点6.1程序6.2选择结构6.3循环结构本章要点6.1程序48程序设计的概念VFP有两种工作方式:交互方式和程序方式。交互方式是在命令窗口中直接输入命令或通过选择菜单来执行VFP命令。但在实际应用中,许多任务是要执行一组命令来完成的。如果采用在命令窗口中逐条输入命令的方式进行,不仅效率不高,而且容易出错。特别是当该任务要反复执行,或者当处理的问题较复杂时,这种交互方式几乎是不可行的,应当采用程序方式。程序设计的概念VFP有两种工作方式:交互方式和程序方式。496.1程序程序是能够完成指定任务的命令序列。将这组命令序列以文件形式保存,该文件称为程序文件或命令文件。在运行程序时,系统将按照一定的次序自动执行其中的各条命令,从而实现通过程序控制自动执行一系列操作,以完成指定任务。6.1程序程序是能够完成指定任务的命令序列。将这组命令50程序文件的基本操作一、程序文件的建立和编辑命令格式:modicomm[<文件名>]功能:建立或修改指定的程序文件。说明:(1)系统默认的程序文件扩展名为.prg(2)若用户指定了<文件名>,执行该命令时,系统首先检索磁盘文件,如果此文件存在,则打开该文件,若指定文件不存在,则建立一个新的空程序文件,其文件名即为指定的<文件名>。程序文件的基本操作一、程序文件的建立和编辑51二、保存命令文件(ctrl+w)三、运行命令文件(do文件名)二、保存命令文件(ctrl+w)52例如6.1统计第一学期有考试成绩的学生人数与平均成绩设置步骤:(1)创建文件:modicommMyProg1(2)编写代码(3)保存文件(4)结束编程(5)调试、运行程序,直到程序完全正确例如6.1统计第一学期有考试成绩的学生人数与平均成绩设置步5354常用命令1.程序注释语句:格式一:NOTE[<注释字符串>]格式二:*[<注释字符串>]格式三:&&[<注释字符串>]8常用命令1.程序注释语句:54552.RETURN命令格式:return功能:终止本程序的执行,把程序控制权返回给本程序的调用者。如果一个程序中没有包含return命令,当执行完本程序最后一条命令后,系统同样也把程序控制权返回给本程序的调用者。92.RETURN553、输入输出命令(交互式命令)程序的正确运行,必然需要操作人员与内存变量之间进行信息交流。VFP提供了许多进行这类数据交流的命令。3、输入输出命令(交互式命令)56ACCEPT语句语句格式:ACCEPT[<字符表达式>]to<内存变量>

执行该命令时,暂停程序的运行,显示命令中的字符表达式作为提示信息,等待用户从键盘输入字符串。系统将接受的字符串存入指定的内存变量,程序继续运行。功能说明:①系统将用户的输入一律作为字符串,输入时不必加定界符,以回车结束输入;②可选的提示信息可以是字符型常量、变量或表达式。如果是字符串常量,则必须使用字符串定界符。例如:查询指定学生的信息(文件名例6-1)ACCEPT语句语句格式:ACCEPT[<字符表达式>]57INPUT语句语句格式:INPUT[<字符表达式>]to<内存变量>功能注释:①用户输入的数据可以是数值型、逻辑型、日期型、日期时间型或字符型,以回车结束输入;②输入字符串时必须加定界符;输入逻辑型常量时要用圆点定界,如(.T.,.F.);输入日期型常量时要用大括号,如{^1962/06/12};③INPUT命令一般是用来输入数值型数据。例如:查询指定年份出生的学生的信息(文件名例6-2)INPUT语句语句格式:INPUT[<字符表达式>]to5859常用命令4.设置是否输出非显示命令的执行结果命令格式:SETTALKON|OFF功能:VFP在执行一些非显示命令(如SELE命令)时,将把执行结果等信息送到VFP主窗口、状态栏或用户自定义窗口里。可使用开关SETTALKON/OFF显示或关闭这些提示信息。如在例6.1的程序的第一行加上命令SETTALKON,对比其运行结果。13常用命令4.设置是否输出非显示命令的执行结果59结构化程序的基本结构一、顺序结构分析书例6.3(myprog2)二、选择结构三、循环结构结构化程序的基本结构一、顺序结构分析书例6.3(mypr606.2选择结构1、条件语句(IF…ENDIF)2、IFF函数3、IF语句的嵌套4、分支语句(DOCASE…ENDCASE)6.2选择结构611、条件语句语句格式:IF<条件><语句序列1>[ELSE<语句序列2>]ENDIF①<条件>是逻辑表达式。当程序执行到IF语句时,首先判断<条件>是否成立。如果<条件>为“真”时,则执行<语句序列1>语句,否则(即<条件>为“假”)执行<语句序列2>。IF语句执行完毕后,再执行ENDIF后面的语句。1、条件语句62②选择结构中可以没有ELSE部分。这样的话,当程序执行到IF语句时,首先判断<条件>是否成立。如果<条件>为“真”时,则执行<语句序列1>语句,否则直接转向ENDIF后面的语句去执行。③IF和ENDIF必须成对出现,IF是该结构的入口,ENDIF是该结构的出口。④IF语句只能在程序中使用,不能在命令窗口中使用⑤为了使程序的结构层次清晰、减少编写错误,增加程序的可读性,一般按缩进(锯齿形)格式书写。即将该结构的入口和出口语句写在同一纵坐标位置上,而将嵌套其中的其他结构语句向右缩若干格。②选择结构中可以没有ELSE部分。这样的话,当程序执行到IF63IF语句举例1CLEARinput"请输入一个数:"TOxIFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF?STR(x)+yRETURN判断从键盘输入的任何一个整数的奇偶。若不是整数,则取整判断。IF语句举例1CLEAR判断从键盘输入的任何一个整数的奇偶。642、IFF函数格式:IIF(<条件>,<表达式1>,<表达式2>)说明:<条件>是逻辑表达式。当<条件>为“真”时,该表达式的返回值为<表达式1>,否则,该表达式的返回值为>,<表达式2>。如:z=IIF(x>=y,x,y),将返回x与y中的较大者作为函数的返回值,并赋给z。2、IFF函数65

IIF函数的功能和IF-ELSE-ENDIF语句非常相似,可以用IF语句取代IIF函数,如IIF(x>=y,x,y)可用如下IF语句取代。IFx>=y z=xELSEz=yENDIF有些IF语句也可以用IIF函数代替,但不是所有的。IIF函数的功能和IF-ELSE-ENDIF语句非常相似,66如,判断数的奇偶性程序中的IF语句IFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF相当于IIF(mod(x,2)=0,”是偶数”,“是奇数”)如,判断数的奇偶性程序中的IF语句673、IF语句的嵌套VFP对选择结构中的命令或语句没有特别的规定或限制,只要是合法的VFP命令或语句就行。IF语句也是合法的VFP语句,因此,在IF语句内部也可以包含IF语句,这就是IF语句的嵌套。

3、IF语句的嵌套68IF的嵌套语句举例CLEARinput"请输入一个数:"TOxIFINT(X)=XIFMOD(x,2)=0THENy="是偶数。"ELSEy="是奇数。"ENDIF?STR(x)+yELSE?"输入的数不是整数。"ENDIFRETURN判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。IF的嵌套语句举例CLEAR判断从键盘输入的任何一个数的奇偶694、分支语句语句格式:DOCASECASE<条件表达式1><语句行序列1>CASE<条件表达式2><语句行序列2>…CASE<条件表达式N><语句行序列N>[OTHERWISE<语句行序列N+1>]ENDCASE功能:根据n个条件表达式的逻辑值,选择执行n+1个语句序列中的一个。4、分支语句功能:70说明:1.当系统执行DOCASE…ENDCASE语句时,依次判断CASE后面的条件是否成立,当发现某个CASE条件成立时,就执行该CASE与下一个CASE之间的语句序列,然后跳出DOCASE结构,转去执行ENDCASE后面的语句。如果所有CASE条件都不成立,则执行OTHERWISE与ENDCASE之间语句序列,然后执行ENDCASE后面的语句。2.DOCASE结构中可以没有OTHERWISE部分。这样的话,当所有CASE条件都不成立时,就直接跳出DOCASE结构,转去执行ENDCASE后面的语句.说明:713.不管有几个CASE条件成立,只有最先成立的那个CASE条件后的语句序列被执行。4.DOCASE和ENDCASE必须成对出现,DOCASE是该结构的入口,ENDCASE是该结构的出口。DOCASE与第一个CASE项之间不能有任何语句。5.与IF语句一样,DOCASE语句只能在程序中使用,不能在命令窗口中使用。6.DOCASE结构一般按缩进格式书写。3.不管有几个CASE条件成立,只有最先成立的那个CASE条72CASE语句举例CLEARinput"请输入一个数:"TOxDOCASECASEINT(X)!=X?"输入的数不是整数"CASEMOD(x,2)=0?"该数是偶数。"CASEMOD(x,2)=0y="该数是奇数。"ENDCASERETURN判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。CASE语句举例CLEAR判断从键盘输入的任何一个数的奇偶性736.3循环结构

循环是程序设计中的一种重要的方法。循环就是程序在执行的过程中,其中的某段代码被重复执行若干次。被重复执行的这段代码称为循环体。VFP中支持循环结构的语句包括:(1)DOWHILE-ENDDO(2)FOR-ENDFOR(3)SCAN-ENDSCAN6.3循环结构循环是程序设计中的一种重要的方法74DOWHILE语句格式:DOWHIL<条件表达式><语句行序列1>[LOOP]<语句行序列2>[EXIT]<语句行序列3>ENDDODOWHILE语句格式:75

当系统执行进入DOWHILE结构时,首先判断循环条件是否成立。如果循环条件成立,则执行DOWHILE与ENDDO之间语句序列(即循环体)。当执行到ENDDO时,返回到DOWHILE,再次判断循环条件是否成立,以确定是否再次执行循环体,如此循环,直到循环条件不成立,结束该循环语句,执行ENDDO后面的语句。当系统执行进入DOWHILE结构时,首先76循环体中可以使用两条特殊的命令:LOOP命令和EXIT命令。如果循环体包含有LOOP命令,那么当执行到LOOP命令时,就结束本次循环(如同执行到ENDDO一样),即不再执行LOOP到ENDDO之间的语句,返回DOWHILE处再判断循环条件是否成立。如果循环体包含有EXIT命令,那么当执行到EXIT命令时,就立即结束该循环语句,执行ENDDO后面的语句。循环体中可以使用两条特殊的命令:LOOP命令和77说明:1.ENDDO必须与DOWHILE成对出现,缺一不可2.LOOP命令和EXIT命令只能用在循环结构中,通常出现在循环体内嵌套的选择语句中。3.避免陷入“死循环”。循环体中必须包含能对<条件>产生影响的命令,否则,若<条件>的值永远为真(.T.),循环将不会结束。这种现象称为“死循环”。说明:784.为了增加程序的可读性,一般按缩进格式书写。5.与IF语句一样,DOWHILE语句只能在程序中使用,不能在命令窗口中使用。4.为了增加程序的可读性,一般按缩进格式书写。79DOWHILE语句举例1例计算1+2+3+…+100的结果clears=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,sreturn循环过程的分析:第1次:(条件i=1满足循环)

S=1i=2第2次:(条件i=2满足循环条件)

S=3i=3第100次:(条件i=100满足循环条件)

S=5050i=101第101次:(条件i=101,不满足循环条件,退出)

计算1+3+…+99clears=0i=1dowhilei<=100s=s+ii=i+2enddoDOWHILE语句举例1例计算1+2+3+…+100的结80二、FOR-ENDFOR循环语句如果事先可以决定循环的次数,使用FOR-ENDFOR语句更加清晰、方便。语句格式:FOR<循环变量名>=<初值>TO<终值>STEP<增量><语句行序列1>[LOOP]<语句行序列2>[EXIT]<语句行序列3>ENDFOR/NEXT二、FOR-ENDFOR循环语句81当系统执行进入FOR循环结构时,首先将初值赋给循环变量,再将循环变量的值与终值比较,判断循环条件是否成立。如果循环变量的值在初值与终值范围内,表示循环条件成立,则执行FOR与ENDFOR之间的语句序列(即循环体),然后循环变量的值增加一个增量,并再次判断循环条件是否成立,以确定是否再次执行循环体。若循环变量的值已超出初值与终值范围,表示循环条件不成立,则结束该循环结构,执行ENDFOR后面的语句。当系统执行进入FOR循环结构时,首先将初值赋给循环变82说明:1.ENDFOR和NEXT是等价的。2.FOR、ENDFOR或NEXT成对出现,缺一不可。3.<初值>、<终值>、<增量>都可以是数值表达式,但它们仅在控制进入循环结构时被计算一次,而在整个循环语句的执行过程中不再改变。4.<增量>是描述循环快慢的量,可以是正值,即递增,也可以是负值,即递减。当增量为1时,STEP可以省掉。若增量为正值,则当循环变量的值小于等于终值时,循环条件成立;若增量为负值,则当循环变量的值大于等于终值时,循环条件成立5.可以在循

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论