如何在 Fortran 中实现这一点?
do i = 1, n Except n/2
有没有一种方便的方法而不是在循环中使用'if'?
有很多解决方案。这是一个使用cycle
. 它仍然if
在循环中有一条语句,但没有if ... end if
块。
MyLoop: do i=1, N
if ( i == N/2 ) cycle MyLoop
! use the loop....
write (*, *) i
end do MyLoop
如果您厌恶循环内的条件
do i = 1,(n/2)-1
...
end do
do i = (n/2)+1,n
...
end do
如果n
是或可能是奇怪的,您将需要调整循环的停止/开始索引。
if
在循环中放置一个语句
do i=1,n
if (i /= n/2) ...
end do
或forall
带有掩码的语句或where
语句可以在某些情况下使用。