如何在Fortran中实现这一目标?
do i = 1, n Except n/2
是否有方便的方式而不是在循环中使用'if'?
答案 0 :(得分:5)
有很多解决方案。这是一个使用cycle
的人。它在循环中仍然有if
语句,但没有if ... end if
块。
MyLoop: do i=1, N
if ( i == N/2 ) cycle MyLoop
! use the loop....
write (*, *) i
end do MyLoop
答案 1 :(得分:4)
如果您厌恶循环中的条件
do i = 1,(n/2)-1
...
end do
do i = (n/2)+1,n
...
end do
如果n
是,或者可能是奇数,则需要调整循环的停止/启动索引。
答案 2 :(得分:1)
在循环中放置if
语句
do i=1,n
if (i /= n/2) ...
end do
或带有掩码或forall
语句的where
语句可以在某些情况下使用。