Fortran - Do 循环构造

当给定条件为真时,do 循环结构允许迭代执行一条语句或一系列语句。

语法

do 循环的一般形式是 −

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

其中,

  • 循环变量 var 应该是一个整数

  • start为初始值

  • stop是最终值

  • step是增量,如果省略,则变量var增加单位

For example

! 计算阶乘
do n = 1, 10
   nfact = nfact * n  
   ! 打印 n 的值及其阶乘
   print*,  n, " ", nfact   
end do

流程图

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

  • 首先执行初始步骤,并且仅执行一次。 此步骤允许您声明和初始化任何循环控制变量。 在我们的例子中,变量 var 使用值 start 进行初始化。

  • 接下来,评估条件。 如果为 true,则执行循环主体。 如果为 false,则循环体不会执行,控制流会跳转到循环后的下一条语句。 在我们的例子中,条件是变量 var 达到其最终值 stop。

  • 执行循环体后,控制流跳回增量语句。 该语句允许您更新循环控制变量var。

  • 现在再次评估条件。 如果为 true,则执行循环并重复该过程(循环主体,然后递增步骤,然后再次条件)。 当条件变为 false 后,循环终止。

Do 循环

示例 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

❮ fortran_loops.htm