Fortran do 循環(huán)

2023-12-29 14:55 更新

Fortran 的最簡單的循環(huán)語句稱為 do 語句,其形式如下所示:

!!! 不設(shè)置步長,默認(rèn)為 1
do 整數(shù)型變量 = 起始值, 結(jié)束值
......
......
enddo

!!! 示例 1
integer a(10)
do n = 1, 10 ! 計算 1,2,3,4,5,6,7,8,9,10
a(n) = n
enddo

!!! 設(shè)置步長,可以設(shè)置正整數(shù)和負整數(shù),不能為 0
do 整數(shù)型變量 = 初始值, 結(jié)束值, 步長
......
......
enddo

!!! 示例 2
integer a(5)
do n = 1, 10, 2 ! 計算 1,3,5,7,9
a(nint(n/2)) = n
enddo

!!! 示例 3
integer a(5)
do n = 10, 1, -2 ! 計算 10,8,6,4,2
a(n/2) = n
enddo

 在使用 do 循環(huán)語句的時候,我們需要注意在結(jié)束循環(huán)語句后循環(huán)條件變量 n 仍然存在。如果后續(xù)計算中還使用到了相同變量,務(wù)必要進行重新初始化賦值,否則可能造成數(shù)據(jù)上的污染。我們可以拿示例 3 舉個例子,當(dāng)循環(huán)結(jié)束后,n 的值其實為 0 (不是 2)。雖然此時的 n 值并不滿足循環(huán)繼續(xù)的條件,但是已經(jīng)完成了對步長的迭代計算,所以如果后續(xù)還是使用相同的變量 n,我們期待的 n 初始值與循環(huán)結(jié)束后的 n 值就可能不一樣。建議在將某個變量設(shè)置為循環(huán)條件變量之后,循環(huán)外盡量不要使用同一個變量,從而避免這一可能存在的干擾。

do 循環(huán)語句實際上也可以存在嵌套,即一個 do 循環(huán)語句包含了其他的 do 循環(huán)語句,如下示例 4 所示。其中需要注意的是,在多重 do 循環(huán)語句中,循環(huán)語句的條件變量不要使用相同的,否則很可能出現(xiàn)了我們意料之外的問題。建議同一個 do 循環(huán)嵌套語句中使用不同的條件變量。如果不在同一個 do 循環(huán)嵌套語句中,使用相同的條件變量產(chǎn)生問題的可能性比較小。

!!! 示例 4
integer a(10)
integer b(10, 5)
do n = 1, 10
a(n) = n
do m = 1, 10, 2
b(n, nint(m/2)) = a(n) + m
enddo
enddo

其實在 do 循環(huán)中所指定的條件變量的初始值、結(jié)束值及步長也可以用已有值的變量來代替,如下所示。

integer m, sum
m = 10
sum = 0
do n = 1, m
sum = sum + n
enddo
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號