以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  for的步长能否调整到5?只能是1吗?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=65135)

--  作者:txzp
--  发布时间:2014/5/17 20:24:42
--  for的步长能否调整到5?只能是1吗?
TR
--  作者:admin
--  发布时间:2014/5/18 11:59:32
--  
for i = 0 to 20 do
begin
MSGOUT(1,numtostr(i,0));
i:=i+4;
end
--  作者:txzp
--  发布时间:2014/5/19 8:59:00
--  
谢谢,刚试了一下,步长是对的,但是不明白,为什么是+4,不是应该+5吗?
--  作者:txzp
--  发布时间:2014/5/19 9:08:53
--  
MSGOUT(1,numtostr(i,0));放在i:=i+4;前面执行有i+1的效果,如果放在后面执行则没有,为什么?
--  作者:yukizzc
--  发布时间:2014/5/19 9:52:23
--  

for循环本身会增1,所以这边要+4。


i:=i+4;

MSGOUT(1,numtostr(i,0));

这样你i先加了4在输出,顺序不一样啊。


--  作者:txzp
--  发布时间:2014/5/19 10:12:18
--  
O,好的明白了,谢谢了.

不能敝帚自珍,我用了一个取巧的方法,算法复杂,程序执行效率没有i+4高,供大家参考

if FRACPART(i/5)=0 THEN BEGIN