Fal*_*ger 3 fortran loops fortran77 fortran90 do-loops
例如,我想以 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
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误消息:“DO 主体中的 do 变量不应出现在变量定义上下文中”。基本上我不能改变循环中的变量“i”。那么我应该如何编写代码来实现它呢?
谢谢。
禁止修改循环索引。您可以通过多种方式解决您的问题。例如,这是一个没有显式循环索引的解决方案:
i = -1
do
i=i+2
if(i > 5000) exit
if (i == 15) i=i+18
...
enddo
Run Code Online (Sandbox Code Playgroud)