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