②语句功能:
该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈命令行序列1〉中的命令;否则,执行〈命令行序列2〉中的命令;执行完〈命令行序列1〉或〈命令行序列2〉后都将执行ENDIF后面的第一条命令。
【例】编写一密码校验程序(假设密码为ABC)。程序文件名为PA4.PRG。
SET TALK OFF
CLEAR
ACCEPT“请输入您的密码:”TO AAA
IF AAA=”ABC”
CLEAR
?”欢迎使用本系统!”
ELSE
?”密码错误!”
WAIT
QUIT
ENDIF
SET TALK ON
(3)多向分支
多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。
①语句格式:
DO CASE
CASE〈条件表达式1〉
<命令行序列1〉
CASE〈条件表达式2〉
<命令行序列2〉
……
CASE〈条件表达式N〉
〈命令行序列N〉]
[OTHERWISE
〈命令行序列N+1〉]
ENDCASE【例】假设收入(P)与税率(R)的关系如下表,编程求税金。程序文件名为PA5.PRG。
0 P<800
R=0.05 800≤P<2000
0.08 2000≤P<5000
0.1 P≥5000
SET TALK OFF
CLEAR
INPUT“请输入收入:”TO P
DO CASE
CASE P<800
R=0
CASE P<2000
R=0.05
CASE P<5000
R=0.08
OTHERWISE
R=0.1
ENDCASE
TAX=P*R
?”税金为:”,TAX
SET TALK ON
RETURN
②语句功能:
该语句根据给出的N个〈条件表达式〉的值,选择N+1个〈命令行序列〉中的一个执行。当所有CASE中〈条件表达式〉的值都是假时,如果有OTHERWISE项,则执行〈命令行序列N+1〉,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。
(4)使用分支语句应注意的几点
①IF……ENDIF和DO CASE……ENDCASE必须配对使用,DO CASE与第一个CASE〈条件表达式〉之间不应有任何命令。
②〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值。
③〈命令行序列〉可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。
④DO CASE……ENDCASE命令,每次最多只能执行一个〈命令行序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈命令行序列〉,然后执行ENDCASE的后面的第一条命令。
【例】下面程序段的功能是计算-个函数f(x)的值,请写出表达式。
SET TALK OFF
INPUT“请输入x值:”TO x
DO CASE
CASE x<-l
f=0
CASE X<1
f=2*x*x-x
CASE x<5
f=x
OTHERWISE