これを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
ステートメントは、特定の状況で使用できます。