一个简单的VFP小程序,有些疑问想请教大家

STORE.T.TOXSTORE0TOYDOWHILEXY=Y+1IFINT(Y/5)=Y/5??YELSELOOPENDIFIFY>151STORE.F.TOXENDI... STORE .T. TO X
STORE 0 TO Y
DO WHILE X
Y=Y+1
IF INT(Y/5)=Y/5
??Y
ELSE
LOOP
ENDIF
IF Y>151
STORE .F. TO X
ENDIF
ENDDO

程序运行的结果是5,10,15,20.
不大明白20是怎么来的,看程序结构感觉它是求0~15之间能被5整除的数。
希望大家能告诉我原因
展开
 我来答
windblast
2012-09-23 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13623
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
DO WHILE X
Y=Y+1
IF INT(Y/5)=Y/5  如果是5的整数倍则输出Y,否则继续跳到循环头继续下一循环
??Y
ELSE
LOOP
ENDIF

 只有当Y是5的整数倍时才会执行,也就是说,只有既是5的整数倍,且>151的时候才终止循环

IF Y>151
STORE .F. TO X
ENDIF

ENDDO

从代码来看,应该输出,0-151之间的5的整数倍。貌似有很多啊,你上面怎么才列出4个呢?

如果151是写错了,是15的话,就可以理解了:

当Y=15的时候,会输出15,当执行到

IF Y>15 时,由于Y并不大于15,所以还会继续循环。

当Y=20的时候,会输出20,当执行到

IF Y>15 时,此时条件成立,退出循环。

最终结果就是,输出:5, 10, 15, 20
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式