鍍金池/ 教程/ Java/ Fortran do循環(huán)結(jié)構(gòu)
Fortran還原功能
Fortran關(guān)系運(yùn)算符
Fortran運(yùn)算符優(yōu)先級(jí)
Fortran基本語法
Fortran文件輸入輸出
Fortran嵌套select case結(jié)構(gòu)
Fortran變量
Fortran Cycle語句
Fortran語言環(huán)境設(shè)置
Fortran數(shù)據(jù)類型
Fortran數(shù)組
Fortran字符
Fortran if...else if...else 語句
Fortran調(diào)試程序
Fortran編程風(fēng)格
Fortran if...then語句結(jié)構(gòu)
Fortran嵌套循環(huán)
Fortran常量
Fortran循環(huán)
Fortran導(dǎo)出數(shù)據(jù)類型
Fortran字符串
Fortran操作函數(shù)
Fortran do...while循環(huán)結(jié)構(gòu)
Fortran內(nèi)部函數(shù)
Fortran數(shù)字精度
Fortran選擇決策
Fortran重塑函數(shù)
Fortran運(yùn)算符
Fortran構(gòu)造函數(shù)
Fortran模塊
Fortran位置函數(shù)
Fortran數(shù)字
Fortran指針
Fortran算術(shù)運(yùn)算符
Fortran exit語句
Fortran動(dòng)態(tài)數(shù)組
Fortran嵌套if結(jié)構(gòu)
Fortran select case結(jié)構(gòu)
Fortran向量和矩陣乘法函數(shù)
Fortran邏輯運(yùn)算符
Fortran if...then...else 結(jié)構(gòu)
Fortran教程
Fortran過程
Fortran Stop語句
Fortran基本輸入輸出
Fortran do循環(huán)結(jié)構(gòu)
Fortran查詢函數(shù)

Fortran do循環(huán)結(jié)構(gòu)

do循環(huán)結(jié)構(gòu)使得一個(gè)語句或一系列語句,以進(jìn)行迭代,當(dāng)一個(gè)給定的條件為真。

語法

do循環(huán)的一般形式是:

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

這里,

  • 循環(huán)變量var應(yīng)該是一個(gè)整數(shù)
  • 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 循環(huán)結(jié)構(gòu)的流程:

  • 初始步驟首先被執(zhí)行,并且僅一次。這一步可以聲明和初始化任何循環(huán)控制變量。在我們的例子中,變量var被初始化開始的值。

  • 接下來,計(jì)算條件。如果為true,則執(zhí)行循環(huán)體。如果是假,則循環(huán)體不執(zhí)行,只是在循環(huán)之后流量控制跳轉(zhuǎn)到下一個(gè)語句。在我們的情況下,該條件就是在變量var達(dá)到其最終值stop。

  • 所述循環(huán)體執(zhí)行后,控制流跳轉(zhuǎn)回至increment 語句。這個(gè)語句可以更新循環(huán)控制變量var。

  • 條件現(xiàn)在重新評(píng)估。如果為true,循環(huán)執(zhí)行的過程重復(fù)(循環(huán)體,再遞增一步,然后再條件)。直到條件為假,循環(huán)終止。

Do Loop

示例 1 

這個(gè)例子將輸出數(shù)字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  

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

11
12
13
14
15
16
17
18
19
20

實(shí)例 2 

這個(gè)程序計(jì)算數(shù)字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  

讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:

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