7.2.3 分支结构程序设计
条件分支根据条件的测试结果执行不同的操作,VFP中有两条命令实现条件分支:
IF…ELSE…ENDIF
DO CASE…ENDCASE
一、IF…ELSE…ENDIF语句
命令格式:
IF条件表达式
命令组1
ENDIF
或
IF条件表达式
命令组1
ELSE
命令组2
ENDIF
命令功能:
该语句指定当条件表达式结果为.T.或.F.时,程序执行语句的顺序。若含有ELSE子句,则条件表达式结果为.T.时,执行命令组1,否则执行命令组2;若不含有ELSE子句,则条件表达式结果为.T.时,执行命令组1,否则执行ENDIF后面的语句。
命令说明:
①<条件表达式>参数是一个关系表达式或逻辑表达式。
②ELSE子句是可选项。当ELSE子句缺省时,如果<条件表达式>条件不成立,那么该命令将不执行任何语句,直接执行ENDIF后面的命令。
③IF和ENDIF必须配对使用。
④IF…ELSE…ENDIF语句可以嵌套使用。也就是说,在IF语句中又包含了另外的IF语句。
IF…ENDIF的流程图如图7-1所示,IF…ELSE…ENDIF的流程图如图7-2所示。
图7-1 IF…ENDIF语句流程图
图7-2 IF…ELSE…ENDIF语句流程图
例如,判定cj表中的学生某门课的成绩是否及格的程序段:
IF cj>=60
?"该门成绩及格"
ELSE
?"该门成绩不及格"
ENDIF
再如,根据变量X的正负符号情况决定变量Y的值为1还是-1:
IF X>0
Y=1
ELSE
Y=-1
ENDIF
IF…ELSE…ENDIF语句最多只能判断两种情况,即二分支。若要判断多于两种可能的情况,有两种方法可以实现:一是在IF…ELSE…ENDIF语句中嵌套IF…ELSE…ENDIF语句块,即在命令组1处或命令组2处再插入IF…ELSE…ENDIF语句,这种方法虽然可行,但结构不是很清晰。第二种方法就是使用下面的DO CASE…ENDCASE语句结构。
二、DO CASE…ENDCASE语句
命令格式:
DO CASE
CASE条件表达式1
命令组1
[CASE条件表达式2
命令组2
CASE条件表达式n
命令组n]
[OTHERWISE
其他命令组]
ENDCASE
命令功能:
该命令用于依次判断给定的条件表达式是否成立,如果条件表达式1成立,那么执行命令组1,然后执行ENDCASE后面的其它语句;如果条件表达式1不成立,条件表达式2成立,那么执行命令组2,然后执行ENDCASE后面的其它语句;依此类推,直到判断条件表达式n;如果条件表达式1至条件表达式n均不成立,并且存在OTHERWISE子句,那么将无条件地执行语句序列n+1。
命令说明:
①<条件表达式>是一个关系表达式或逻辑表达式。
②DO CASE与第一个CASE之间不能有任何语句。
③DO CASE和ENDCASE必须配对使用。
④DO CASE…ENDCASE语句可以嵌套使用。
DO CASE…ENDCASE语句流程图如图7-3所示。
图7-3 DO CASE…ENDCASE语句流程图
例如,对cj表中的学生成绩进行分类的程序段:
DO CASE
CASE cj>=60 AND cj<70
?“该门成绩及格”
CASE cj>=70 AND cj<85
?“该门成绩良好”
CASE cj>=85
?“该门成绩优秀”
ENDCASE
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。