DO
用途
DO 语句控制其后面的语句的执行,直到并包括指定的终端语句。 这些语句共同构成 DO 构造。
语法
规则
如果在 DO 语句上指定 DO_construct_name ,那么必须使用 END DO 和相同的 DO_construct_name来终止构造。 相反,如果未在 DO 语句上指定 DO_construct_name ,并且使用 END DO 语句终止 DO 构造,那么 END DO 语句上不得有 DO_construct_name 。
如果在 DO 语句中指定语句标签,那么必须使用带有该语句标签的语句来终止 DO 构造。 您可以使用带有该语句标签的 END DO 语句来终止带标签的 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
