目的
DO WHILE ステートメントは、DO WHILE 構文の最初の ステートメントであり、指定された終端ステートメントまでの間に ある (終端ステートメントも含む) のステートメントのブロックを、この ステートメントに指定されている論理式が真であり続ける限り、 繰り返し実行します。
構文
>>-+----------------------+--DO--+------------+--+---+----------> '-DO_construct_name--:-' '-stmt_label-' '-,-' >--WHILE--(--logical_expr--)----------------------------------->< |
DO WHILE ステートメント上に DO_construct_name を指定 する場合、同じ DO_construct_name が指定されてい る END DO でその構文を終了させます。 逆に、DO WHILE ステートメント上に DO_construct_name を指定せずに、END DO で DO WHILE 構文を終了させる場合は、END DO ステートメントに DO_construct_name を 指定してはなりません。
DO WHILE ステートメントにラベルを指定する場合、同じラベルの付いたステートメントで DO WHILE 構文を終了させなければなりません。 ラベル付き DO WHILE ステートメントを同じラベルが付いている END DO ステートメントで終了させることはできますが、 ラベルなし END DO ステートメントで終了させることはできません。DO WHILE ステートメントにラベルを指定しない場合は、END DO ステートメントで DO WHILE 構文を終了させなければなりません。
例
MYDO: DO 10 WHILE (I .LE. 5) ! MYDO is the construct name SUM = SUM + INC I = I + 1 10 END DO MYDO END SUBROUTINE EXAMPLE2 REAL X(10) LOGICAL FLAG1 DATA FLAG1 /.TRUE./ DO 20 WHILE (I .LE. 10) X(I) = A I = I + 1 20 IF (.NOT. FLAG1) STOP END SUBROUTINE EXAMPLE2
関連情報