一小段FOXPRO程序问题。请请教数据库编程高手
程序如下
store 0 to x,y
use 图书
scan
if 单价>20 and 单价<25
loop
endif
if 单价<=20
x=x+1
endif
y=y+1
endscan
?y
这是自学考试:管理系统中计算机应用的一道习题
题目答案是:统计单价大于25的图书数量。
我的问题是 第二个IF语句,扫描到单价小于20的记录,属于符合条件,则应执行:x=x+1
那么执行完上面这句应该就ENDIF。那么接下来不就也接着执行y=y+1这句了吗?
这样不就把单价小于20的也统计进去了吗?(当然我试了一下,用这个程序是好像只统计了大于25的图书)
我哪里理解得不对呢?
答案:你的理解应该是对的,我验证过,会包括单价小于20的。这段程序输出y的结果等价于命令:COUNT FOR 单价>=25 OR 单价<=20
楼主可以再试一下。
其他:统计结果:x是小于20的个数,y是大于25的个数。所以小于20的不执行y=y+1是正确的,最后输出的也是y的值 y确实应该包括<=20和>=25的情况,如果没有统计<=20的情况,查看一下是不是记录中没有<=20的?
上一个:visual foxpro 练习题
下一个:VFP(visual foxpro)替换生产日期 怎么将某个日期字段的生产日期增加三年,但是月和日不变啊?