位置:首頁 > 高級語言 > Fortran教學 > Fortran do循環結構

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