DO WHILE

:指定された条件が真である間,DO 構文の範囲を実行します。

形式

DO [label[, ] ] WHILE (expr)

label
(省略可能) 同じプログラム単位中の実行文を指定する文番号。

expr
括弧で囲まれたスカラ論理式。

規則と振る舞い

DO 範囲の実行が行われるたびに,実行の前に論理式が評価されます。この論理式が真ならば,ループ本体中の文が実行されます。偽ならば,DO 構文は終了し,制御はループの次の文に移されます。

DO WHILE 文の中に文番号がない場合,DO WHILE ループは END DO 文で終了しなくてはなりません。

DO WHILE ループの外に制御を移すことはできますが,プログラム内の他のループの中に制御を移すことはできません。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

CONTINUECYCLEDODO 構文EXIT実行制御

次の例は DO WHILE 文を示しています。

	CHARACTER*132 LINE
	...
	I = 1
	DO WHILE (LINE(I:I) .EQ. ' ')
	  I = I + 1
	END DO

以下の例は,END DO 文が必須である場合と省略可能な場合を示しています。

	必須			省略可能
	DO WHILE (I .GT. J)	   DO 10 WHILE (I .GT. J)
	  ARRAY(I,J) = 1.0	     ARRAY(I,J) = 1.0
	  I = I - 1		     I = I - 1
	END DO			10 CONTINUE

以下に別の例を示します。

	CHARACTER(1) input
	input = ' '
	DO WHILE ((input .NE. 'n') .AND. (input .NE. 'y'))
	  WRITE (*, '(A)') 'Enter y or n: '
	  READ (*, '(A)') input
	END DO