例如,我希望以2的增量从1循环到500.但是,对于每8个循环,我想跳过接下来的18个循环(使do变量增加18)。我该怎么做?
我的代码是:
event = 0
do i = 1,500,2
event = event + 1
if (event .eq. 8) then
i = i + 18
event = 0
endif
enddo
然而,我得到了错误:" DO主体内的do-variable不应出现在变量定义上下文中#34;。基本上我不能改变变量" i"在循环。那么我应该如何编写代码来实现呢?
感谢。
答案 0 :(得分:4)
禁止修改循环索引。您可以通过多种方式解决问题。例如,这是一个没有显式循环索引的解决方案:
i = -1
do
i=i+2
if(i > 5000) exit
if (i == 15) i=i+18
...
enddo
答案 1 :(得分:1)
考虑这个例子的嵌套循环,比如
do k=0,15
do j=0,7
i=34*k+2*j ! 34 == 18+2*8
....
end do
end do
(可能我没有算术权,但你看到了这个想法)