<语句序列N+1>]
ENDCASE
条件1 Y 语句列1 语句列2 语句列n N 条件2 N 条件n N OTHERWISE 有 其它语句列 无 ENDCASE后面语句 参数描述:
CASE <条件表达式1> <语句序列1> ? :VFP在执行这条多条件选择命令时,按命令行中写出的条件表达式的顺序逐条检查<条件表达式>,当遇到第一个结果为“真”的<条件表达式>时,就执行它后面的语句序列。语句序列中的命令逐条被执行,直到遇到下一个CASE或OTHER-WISE或ENDCASE,然后,
再从ENDCASE语句后的第一条命令开始继续执行其它命令。
如果一个CASE <条件表达式>的<条件表达式>为“假”,就忽略它后面的语句序列。
例子; clea
set talk off use 英语
input \输入记录号\go n
zp=平时*0.3+期中*0.3+期末*0.4 do case
case zp>85
?\优秀\
REPLACE 学期总评 WITH zp disp
case zp>75
?\良好\
REPLACE 学期总评 WITH zp disp
case zp>60
?\合格\
REPLACE 学期总评 WITH zp disp
otherwise
?\不合格\
REPLACE 学期总评 WITH zp
disp
endcase use
set talk on retu clea
USE 职工工资表
ACCE\输入职工号\LOCA FOR 职工号=zzh IF .not.eof()
do case
case 总收入<=1000
REPLACE 所得税 WITH 0
case 总收入>1000 .and.总收入<1500
REPLACE 所得税 WITH (总收入-1000)*0.05
case 总收入<2000
REPLACE 所得税 WITH (总收入-1500)*0.1
otherwise
REPLACE 所得税 WITH (总收入-2000)*0.15
endcase
ELSE
WAIT \不存在该职工号的职工\ ENDIF disp use RETU
05年高考 四、编程题(10分)
?1000 x?50?10?x?50?2x?3 已知y??2
10?x?0?x?x x?0?试编程计算y的值(要求:x的值由键盘输入)。
set talk off clear
input “请输入X的值:” to x do case
case x>=50 y=1000
case x>10 y=2*x+3 case x>=0 y=x^2 otherwise y=x endcase ? “y=”,y return
09高考2.设有学生成绩表xscj.dbf,结构如下表所示。要求根据学生的成绩确定等级,具体规定如下:成绩在85分以上的等级为“优秀”(含85分);成绩在70——84分之间的等级为“良好”;成绩在60——69分之间的等级为“及格”;60分以下的等级为“不及格”。请编程实现上述功能。(8分) 字段名称 数据类型 字段宽度 姓名 字符型 8 成绩 数值型 3 等级 字符型 8
10年高考 四、编程题(共15分,第1题7分,第2题8分)
1 现有某学校的职工工资表gz.dbf,其表结构中含有姓名、性别、职称、基本工资、奖金等字段。请编程实现:若职称字段值为“教授”,则将基本工资改为3000,奖金增加2000;若职称字段值为“副教授”,则将基本工资改为2000,奖金增加1500;其余职工的基本工资都改为1800,奖金增加1000。(7分) 1参考程序: use gz
do while not eof() do case
case 职称=”教授”
repl 基本工资 with 3000,奖金 with 奖金+2000 case职称=”副教授”
repl 基本工资 with 2000,奖金 with 奖金+1500 otherwise
repl 基本工资 with 1800,奖金 with 奖金+1000
endcase skip enddo use
2、循环语句
程序设计中的循环,是指在程序中从某处开始,有规律地反复执行某一个程序块的现象。VFP的循环命令有三类:基于条件的循环、基于计数的循环和基于表的循环。
循环
循环结构可以按照需要多次重复执行一行或多行代码。在 Visual FoxPro 中有三种循环语句:
? ? ?
基于表的循环命令: SCAN ... ENDSCAN 基于计数的循环命令:FOR ... ENDFOR 基于条件的循环命令:DO WHILE ... ENDDO
若对表中全部记录执行某一操作,可以使用 SCAN。随着记录指针的移动,SCAN 循环允许对每条记录执行相同的代码块。
若事先知道循环次数,则可以使用 FOR 循环。例如,已知表中的字段数(字段数可以用函数 FCOUNT( ) 得到),那么就可以用一个 FOR 循环打印表中的全部字段名。
FOR nCnt = 1 TO FCOUNT( ) ? FIELD(nCnt) ENDFOR
想要在某一条件满足时结束循环,可以使用 DO WHILE 语句。使用 DO WHILE 结构,事先可以并不清楚循环的次数,但需要知道什么时候结束循环。
(1)基于条件的循环:DO WHILE命令 格式:DO WHILE <条件表达式>
[<语句序列>]
[LOOP]
[<语句序列>]
[EXIT]
[<语句序列>]
ENDDO