位置:首页 » 文章/教程分享 » Fortran do循环结构

do循环结构使得一个语句或一系列语句,以进行迭代,当一个给定的条件为真。

语法

do循环的一般形式是:

do var = start, stop [,step]    
   ! statement(s)
   …
end do

这里,

  • 循环变量var应该是一个整数
  • start 是初始值
  • stop 是最终值
  • 步骤step是递增,如果此被省略,则变量var以单位增加

例如:

! compute factorials
do n = 1, 10
   nfact = nfact * n  
   ! printing the value of n and its factorial
   print*,  n, " ", nfact   
end do

流程图

这里是控制 do 循环结构的流程:

  • 初始步骤首先被执行,并且仅一次。这一步可以声明和初始化任何循环控制变量。在我们的例子中,变量var被初始化开始的值。

  • 接下来,计算条件。如果为true,则执行循环体。如果是假,则循环体不执行,只是在循环之后流量控制跳转到下一个语句。在我们的情况下,该条件就是在变量var达到其最终值stop。

  • 所述循环体执行后,控制流跳转回至increment 语句。这个语句可以更新循环控制变量var。

  • 条件现在重新评估。如果为true,循环执行的过程重复(循环体,再递增一步,然后再条件)。直到条件为假,循环终止。

Do Loop

示例 1 

这个例子将输出数字11到20:

program printNum 
implicit none  

   ! define variables
   integer :: n
   
   do n = 11, 20     
      ! printing the value of n 
      print*,  n 
   end do 
   
end program printNum  

让我们编译和运行上面的程序,这将产生以下结果:

11
12
13
14
15
16
17
18
19
20

实例 2 

这个程序计算数字1到10的阶乘:

program factorial  
implicit none  

   ! define variables
   integer :: nfact = 1   
   integer :: n  
   
   ! compute factorials   
   do n = 1, 10      
      nfact = nfact * n 
      ! print values
      print*,  n, " ", nfact   
   end do 
   
end program factorial

让我们编译和运行上面的程序,这将产生以下结果:

1         1
2         2
3         6
4        24
5       120
6       720
7      5040
8     40320
9    362880
10  3628800