我想循环N次迭代,但是有些迭代应该是"跳过"在特定条件下。
我知道我可以使用goto
语句来完成它,例如:
do i = 1, N
if condition(i) goto 14
! Execute my iteration if condition(i) is false
14 continue
end do
但是我对这些goto
语句有点害怕,我想知道是否有其他解决方案(我使用fortran 90但对任何解决方案都感兴趣,即使它需要更新的版本)。
答案 0 :(得分:5)
试试这个
do i = 1, N
if (condition(i)) cycle
! Execute my iteration if condition(i) is false
end do
如果您需要解释,请评论您需要澄清的内容。请注意,我删除了过时的continue
并标记了语句。
答案 1 :(得分:2)
你也可以这样:
do i = 1, N
if ( .not. condition(i) ) then
! Execute my iteration if condition(i) is false
endif
end do