XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

DO

目的

DO ステートメントは、それ自身と、指定された終端ステートメントまでの間にあるステートメント (その終端ステートメントも含む) の実行を制御します。これらのステートメントすべてが DO 構造体を構成します。

構文



>>-+----------------------+--DO--+------------+----------------->
   '-DO_construct_name--:-'      '-stmt_label-'
 
>--+---------------------------------------------------+-------><
   '-+---+-var_name = a_expr1a_expr2--+------------+-'
     '-,-'                              '- , a_expr3-'
 
 

DO_construct_name
DO 構造体を識別する名前です。

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

var_name
整数タイプまたは実数タイプのスカラー変数名で、DO 変数と呼ばれます。

a_expr1a_expr2、および a_expr3
これらは、整数タイプまたは実数タイプのスカラー式です。

規則

DO ステートメントで DO_construct_name を指定する場合、同じ DO_construct_name が指定されている END DO でその構造体を終了させます。逆に、DO ステートメント上に DO_construct_name を指定せずに、 END DODO 構造体を終了させる場合は、 END DO ステートメントに DO_construct_name を指定してはなりません。

DO ステートメントでステートメント・ラベルを指定した場合は、同じステートメント・ラベルの付いたステートメントで DO 構造体を終了させなければなりません。ラベル付き DO ステートメントを同じラベルが付いている END DO ステートメントで終了させることはできますが、ラベルなし END DO ステートメントで終了させることはできません。 DO ステートメントにラベルを指定しない場合は、END DO ステートメントで DO 構造体を終了させなければなりません。

制御文節 (var_name で始まる文節) を指定しないと、そのステートメントは無限 DO になります。ループは (たとえば EXIT ステートメントなどによって) 中断されるまで、いつまでも実行を繰り返します。

INTEGER :: SUM=0
OUTER: DO
  INNER: DO M=1,10
    READ (5,*) J
    IF (J.LE.I) THEN
      PRINT *, 'VALUE MUST BE GREATER THAN ', I
      CYCLE INNER
    END IF
    SUM=SUM+J
    IF (SUM.GT.500) EXIT OUTER
    IF (SUM.GT.100) EXIT INNER
  END DO INNER
  SUM=SUM+I
  I=I+10
END DO OUTER
PRINT *, 'SUM =',SUM
END

関連情報


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]