通過上面的內(nèi)容,不難發(fā)現(xiàn)上述的 do 循環(huán)確實(shí)看起來有點(diǎn)像 C、C++ 中的 For 循環(huán),那么 Fortran 語言中是否也存在 while 循環(huán)呢?答案是當(dāng)然了,其形式如下所示。
do while (條件)
......
......
enddo
!!! 示例 5
!!! 計(jì)算并輸出 10,9,8,7,6,5,4,3,2,1 的平方
integer n
n = 10
do while (n > 0)
print *, n**2
n = n - 1
enddo
我們可以從示例 5 中發(fā)現(xiàn),while 循環(huán)其實(shí)就是變化后的 do 循環(huán)。do 循環(huán)中判斷條件緊跟著 do 字符串,當(dāng)符合條件時(shí)進(jìn)入循環(huán)體內(nèi)部繼續(xù)執(zhí)行,否則跳出循環(huán)。while 循環(huán)中將 do 循環(huán)的初始值放置在了循環(huán)語句的前面進(jìn)行聲明,while 循環(huán)的條件中只有對于結(jié)束值的聲明,而原來 do 循環(huán)的步長自增或自減操作則放置在了循環(huán)體中。這里有一點(diǎn)不同的是,如果自增或自減語句被放置在循環(huán)體的第一行,那么最后的執(zhí)行結(jié)果就與 do 循環(huán)的不一致了。這是因?yàn)?do 循環(huán)實(shí)際上是在循環(huán)體執(zhí)行完成后執(zhí)行的步長自增或自減操作,而 while 循環(huán)中則可以自行設(shè)置自增或自減操作在循環(huán)體中的位置。
更多建議: