1

如何在 Fortran 中实现这一点?

    do i = 1, n Except n/2

有没有一种方便的方法而不是在循环中使用'if'?

4

3 回答 3

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
于 2013-03-25T14:28:26.333 回答
4

如果您厌恶循环内的条件

do i  = 1,(n/2)-1
 ...
end do
do i = (n/2)+1,n
 ...
end do

如果n是或可能是奇怪的,您将需要调整循环的停止/开始索引。

于 2013-03-25T12:41:59.940 回答
1

if在循环中放置一个语句

do i=1,n
  if (i /= n/2) ...
end do

forall带有掩码的语句或where语句可以在某些情况下使用。

于 2013-03-25T12:39:51.097 回答