循环

DO循环

  1. DO
  2. ...
  3. IF(逻辑表达式) EXIT
  4. ...
  5. END DO

在DO和END DO之间的语句重复执行,知到逻辑表达式为真,执行EXIT语句。
每个DO循环只能包含一条EXIT语句。

DO WHILE循环

  1. DO WHILE(逻辑表达式)
  2. ...
  3. ...
  4. ...
  5. ...
  6. END DO

与DO循环差不多,必须在顶部进行退出测试,因此相比之下DO循环更灵活方便。
注意:不要使用DO WHILE循环,而是使用更一般的DO循环。

迭代或计数循环

  1. DO index=istart, iend, incr
  2. 语句1
  3. ...
  4. 语句n
  5. END DO
  1. istart, iend, incr分别为计数开始值,计数结束值,计数增量,均为整型变量。
  2. incr不是必须的,若没有,默认为1。
  3. istart, iend, incr可以是常量、变量、表达式。
  4. DO循环执行条件为indexincr≤iendincr.
  5. 不要在循环体内部改变循环控制变量的值,istart, iend, incr应该在循环开始之前确定不变。
  6. 不要依赖循环结束输出的循环控制变量的值,因为这三个变量往往是不确定的。

CYCLE和EXIT语句

CYCLE语句

CYCLE语句在DO循环体内执行,当前这一步循环终止,控制返回到循环的顶部。

EXIT语句

EXIT语句在DO循环体内执行,整个循环执行终止,开始执行END DO后的第一条语句。

命名的循环

  1. outer:DO i = 1, 3
  2. inner:DO j = 1, 3
  3. product = i * j
  4. WRITE(*,*) i,'*',j,'=',product
  5. END DO inner
  6. END DO outer

多个循环嵌套,可给循环命名,以方便理解和调试。