一个简单的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整除的数。
希望大家能告诉我原因 展开
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整除的数。
希望大家能告诉我原因 展开
2012-09-23 · 知道合伙人软件行家
关注
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询