**工资增加计算.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