在do-loop中跳过迭代(fortran)

Fef*_*ffe 3 iteration fortran fortran90 do-loops

我想循环N次迭代,但是在特定条件下应该"跳过"一些迭代.我知道我可以使用goto语句来完成它,例如:

       do i = 1, N
          if condition(i) goto 14
          ! Execute my iteration if condition(i) is false
    14    continue
       end do
Run Code Online (Sandbox Code Playgroud)

但我有点害怕这些goto陈述,我想知道是否有另一种解决方案(我使用的是fortran 90,但对任何解决方案都感兴趣,即使它需要更新的版本).

Hig*_*ark 6

试试这个

do i = 1, N
          if (condition(i)) cycle
          ! Execute my iteration if condition(i) is false
end do
Run Code Online (Sandbox Code Playgroud)

如果您需要解释,请评论您需要澄清的内容.请注意,我已经删除了陈旧continue和标注的声明.