增量处理

  1. 将选择 DO 变量,迭代计数以及其 DO 语句最近执行的活动 DO 构造的增量进行处理。
  2. DO 变量的值增加了 m3的值。
  3. 迭代计数减少了 1。
  4. 执行将继续对迭代计数已递减的同一 DO 构造进行循环控制处理。

Migration Tip:

  • 使用 EXITCYCLE和无限 DO 语句代替 GOTO 语句。
FORTRAN 77 源代码
        I = 0
        J = 0
20      CONTINUE
        I = I + 1
        J = J + 1
        PRINT *, I
        IF (I.GT.4) GOTO 10   ! Exiting loop
        IF (J.GT.3) GOTO 20   ! Iterate loop immediately
        I = I + 2
        GOTO 20
10      CONTINUE
        END
Fortran 90/95/2003 源代码:
        I = 0 ; J = 0
        DO
          I = I + 1
          J = J + 1
          PRINT *, I
          IF (I.GT.4) EXIT
          IF (J.GT.3) CYCLE
          I = I + 2
        END DO
        END

示例

INTEGER :: SUM=0
OUTER: DO
  INNER: DO
    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