DO WHILE

目的

DO WHILE ステートメントは、DO WHILE 構文の最初の ステートメントであり、指定された終端ステートメントまでの間に ある (終端ステートメントも含む) のステートメントのブロックを、この ステートメントに指定されている論理式が真であり続ける限り、 繰り返し実行します。

構文



>>-+----------------------+--DO--+------------+--+---+---------->
   '-DO_construct_name--:-'      '-stmt_label-'  '-,-'
 
>--WHILE--(--logical_expr--)-----------------------------------><
 
 

DO_construct_name
DO WHILE 構文を識別する名前です。

stmt_label
同一の有効範囲単位内で DO WHILE ステートメント の後に指定されている実行可能ステートメントのラベルです。 これは DO WHILE 構文の終わりを示します。

logical_expr
スカラー論理式です。

規則

DO WHILE ステートメント上に DO_construct_name を指定 する場合、同じ DO_construct_name が指定されてい る END DO でその構文を終了させます。 逆に、DO WHILE ステートメント上に DO_construct_name を指定せずに、END DODO 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

関連情報

IBM Copyright 2003