一般來說在復(fù)雜的行列式計(jì)算中經(jīng)常會(huì)遇到多重循環(huán),這與以上 goto 和 exit 語句的場景稍顯不同。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 是對應(yīng)于循環(huán)的一個(gè)別名,需要同時(shí)在 do 前和 enddo 后添加 out 的聲明。當(dāng)然,這里的別名也可以使用其他符合規(guī)則的字符串,只要不與同一個(gè)代碼文件中的其他別名或變量名等相同即可。
更多建議: