ch04-程序及子程序设计第2部分.pptx
第四章程序及子程序设计
第二部分;4.3结构化程序设计基础;4.3.2选择结构
选择结构,也称为分支结构,根据某个条件的成立与否,来决定下一步做什么,不做什么。选择结构体现了程序在运行过程中的逻辑判断能力。
选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制流程图,然后根据程序流程写出源程序。
1.分支语句:if……endif语句
格式:
if条件表达式
语句序列
endif
功能:首先计算条件表达式,如果条件表达式为真(.t.),执行语句系列中的语句,否则执行endif后面的语句。If……endif,只是针对条件的一种情况做出处理,而另一种情况不执行任何操作,这就是单路径的形式。;例9从键盘输入两个数据x和y,判断x是否为偶数,假如x为偶数则将y值加上x,否则y值表示不变,最后输出变量y。
1)新建程序文件为s9.prg,输入如下代码:
clear
input输入数值x:tox
input输入数值y:toy
ifmod(x,2)==0
ifx%2==0
y=y+x
endif
?y值为,y
return
2)在命令窗口,输入dos9。
;2.1分支语句:if……else……endif语句
格式:
if条件表达式
语句序列1
Else
语句序列2
endif
功能:首先计算条件表达式,如果条件表达式为真(.t.),执行语句系列1中的语句,否则执行语句系列2中的各行语句。
If语句根据条件表达式的值,选择两个语句序列中的一个来执行,这是双路径的情况。;例10:设计qq密码校验系统,从键盘输入密码(假设密码为abc),如果密码正确显示“欢迎使用本系统”,否则显示“密码错误,无权登录!!!”。
1)新建程序文件为s10.prg,输入如下代码:
clear
accept请输入您的密码:tomm
ifmm==abc
?欢迎使用本系统!
else
?密码错误,无权登录!!!
endif
return
2)在命令窗口,输入dos10。;在结构化程序设计中,条件语句if可以嵌套使用,在嵌套时要注意语句的格式完整,if和endif必须一一对应;在配对上endif总是与它最近的语句组成一对,不能交叉。
2.2分支语句:If语句的嵌套格式:;例11:在读者表中,根据借书证号查找某读者,如果该读者为团员显示“该读者是团员”,否则显示“该读者不是团员”。
1)新建程序文件为s11.prg,输入如下代码:
clear
use读者
accept请输入借书证号:tojszh
locatefor借书证号=jszh
ifeof()
?查无此人
else
; if团员
?该读者是团员
else
?该读者不是团员
endif
endif
use
Return
2)在命令窗口,输入dos11。
注意:使用locatefor命令时,如果使用的字段设置了索引,应将其取消,否则将无法使用该命令。想要结合索引查询,则需要使用sql语句。;3.多分支语句:docase……endcase
格式:
docase
case条件表达式1
语句序列1
case条件表达式2
语句序列2
[…
case条件表达式n
语句序列n]
[otherwise
语句序列n+1]
endcase;?;1)新建程序文件为s12.prg,输入如下代码:
input请输入x的值:tox
docase
casex=0
y=4*x+3
casex0andx=1
y=x+3
casex1
y=-x+5
endcase
?y=,y
return
2)在命令窗口,输入dos12。;4.3.3循环结构
循环结构,用来描述重复执行某段语句的问题,减少源程序重复书写的工作量。vf中有3种循环语句:dowhile…enddo,for…endfor/next,scan…endscan来控制循环。
1.dowhile循环语句
格式:
dowhile条件表达式
语句序列
enddo
功能:首先判断dowhile处表达式的值,如果条件表达式的值为.t.,则执行循环环体内的语句;否则,转到enddo后的第一条语句执行。
如果第一次判断时条件为假,则循环体一次也一能执行。;例13计算1到10之间的整数和。
1)新建程序文件为s13.prg,输入如下代码:
s=0
i=1
dowhilei=10
s=s+i
i=i+1
enddo
?s
return
2)在命令窗口,输入dos13。
;在dowhile循环中可以使用loop和exit。
loop语句的功能是强行返回到循环开始语句,不管其后有多少语句都不能被执行,而转去判断下一次循环