**工资增加计算.PRG
CLEAR
ACCEPT"请输入基本工资"TO dj
DO CASE CASE dj>=3000 ?"增加工资的5%,工资为",dj*1.05 CASE 3000>=dj>=2000 ?"增加工资的8%,工资为",dj*1.08 CASE dj<=2000 ?"增加工资的10%,工资为",dj*1.1 OTHERWISE ?"错误!"
END CASE
RETURN
CLEAR
ACCEPT"请输入基本工资"TO dj
dj=val(dj)
DO CASE CASE dj>=3000 ?"增加工资的5%,工资为",dj*1.05 case dj>=2000 and dj=<3000 && 此句的语法无问题,但是,逻辑有问题,=3000 时,你按多少比例加工资? ?"增加工资的8%,工资为",dj*1.08 CASE dj=<2000 && ,=2000 时,你按多少比例加工资? ?"增加工资的10%,工资为",dj*1.1 OTHERWISE ?"错误!"
ENDCASE
RETURN
do case .....endcase 与多个 if ....endif 都是多条件判断语句,但程序的运行顺序还是有区别的。
就上例而言用 if 可以写成
if dj>=3000 ......
endif
if dj>=2000 and dj<3000 ......
endif
if dj=<2000 ......
endif
运行时,程序对每一个 if 语句都判断一次,看看是否符合条件。
而 case 语句则不同,当它找到第一个符合条件语句后,执行下面的命令,然后执行 endcase 。所以判断条件可以简化。
do case
case dj<2000 ......
case dj<3000 ......
otherwise ......
endcase