Fortran - do 循环构造

  • 简述

    do 循环结构允许在给定条件为真时迭代地执行一个语句或一系列语句。
  • 句法

    do循环的一般形式是 -
    
    do var = start, stop [,step]    
       ! statement(s)
       …
    end do
    
    在哪里,
    • 循环变量 var 应该是一个整数
    • start 是初始值
    • 停止是最终值
    • 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 使用值 start 进行初始化。
    • 接下来,评估条件。如果为真,则执行循环体。如果为假,则不执行循环体,控制流跳转到循环之后的下一条语句。在我们的例子中,条件是变量 var 达到其最终值 stop。
    • 循环体执行后,控制流跳回到增量语句。此语句允许您更新循环控制变量 var。
    • 现在再次评估条件。如果为真,则执行循环并重复该过程(循环体,然后递增步骤,然后再次条件)。条件变为假后,循环终止。
  • 示例 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