ループ出口条件

ループ出口条件とは、1 つのループの反復回数を決める条件のことです。例えば、ループが固定インデックスを持つ場合、ループの反復回数はその固定インデックスによって決められます。ループの反復はカウントできるものでなければなりません。 すなわち、反復の回数は、次のいずれかで表す必要があります。

ループの出口が計算結果によって左右されるようなループは、その反復回数を数えられません。次の例は、可算/不可算ループの構成要素を表しています。

可算ループによる正しい使用: 例 1

SUBROUTINE FOO (A, B, C, N, LB)
DIMENSION A(N),B(N),C(N)
INTEGER N, LB, I, COUNT
!Number of iterations is "N - LB + 1"
COUNT = N         
DO WHILE (COUNT .GE.LB)
A(I) = B(I) * C(I)
COUNT = COUNT - 1
I = I + 1
ENDDO  !LB is not defined within loop
RETURN
END

可算ループによる正しい使用: 例 2

!Number of iterations is (N-M+2) /2
SUBROUTINE FOO (A, B, C, M, N, LB)
DIMENSION A(N),B(N),C(N)
INTEGER I, L, M, N
I = 1;
DO L = M,N,2
A(I) = B(I) * C(I)
I = I + 1
ENDDO
RETURN
END

不可算ループによる誤った使用の例

!Number of iterations is dependent on A(I)
SUBROUTINE FOO (A, B, C)
DIMENSION A(100),B(100),C(100)
INTEGER I
I = 1
DO WHILE (A(I) .GT.0.0)
A(I) = B(I) * C(I)
I = I + 1
ENDDO
RETURN
END