Fortran 多重循環(huán)下的 exit 與 goto 語句

2023-12-29 14:55 更新

一般來說在復(fù)雜的行列式計(jì)算中經(jīng)常會(huì)遇到多重循環(huán),這與以上 goto 和 exit 語句的場(chǎng)景稍顯不同。goto 語句的跳轉(zhuǎn)行因?yàn)榭梢灾付ㄈ魏我恍校圆粫?huì)被多重循環(huán)影響,可以直接跳轉(zhuǎn)到多重循環(huán)之外或者某一重循環(huán)之中的某一行,如示例 17 所示。而 exit 語句如果還是按照上面的用法每次只能退出一重循環(huán),碰到需要同時(shí)退出多重循環(huán)時(shí)就比較麻煩。所以 Fortran 語言為了盡量避免這一問題,就給 exit 語句添加一種類似于 goto 語句指示跳轉(zhuǎn)行的方法 exit out,如示例 18 所示。

!!! 示例 17
    sum = 0
do i = 1, 10
do j = 1, 10
sum = sum + i + j
if (sum > 10) go 10
enddo
enddo
10 print *, i, j, sum ! 輸出 i 的值為 1,j 的值為 4,sum 的值為 11

!!! 示例 18
sum = 0
out: do i = 1, 10
do j = 1, 10
sum = sum + i + j
if (sum > 10) exit out
enddo
enddo out
print *, i, j, sum ! 輸出 i 的值為 1,j 的值為 4,sum 的值為 11

這里需要注意的是,當(dāng)使用 ?exit out? 方法時(shí),out 是對(duì)應(yīng)于循環(huán)的一個(gè)別名,需要同時(shí)在 do 前和 enddo 后添加 out 的聲明。當(dāng)然,這里的別名也可以使用其他符合規(guī)則的字符串,只要不與同一個(gè)代碼文件中的其他別名或變量名等相同即可。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)