一般來說在復雜的行列式計算中經(jīng)常會遇到多重循環(huán),這與以上 goto 和 exit 語句的場景稍顯不同。goto 語句的跳轉行因為可以指定任何一行,所以不會被多重循環(huán)影響,可以直接跳轉到多重循環(huán)之外或者某一重循環(huán)之中的某一行,如示例 17 所示。而 exit 語句如果還是按照上面的用法每次只能退出一重循環(huán),碰到需要同時退出多重循環(huán)時就比較麻煩。所以 Fortran 語言為了盡量避免這一問題,就給 exit 語句添加一種類似于 goto 語句指示跳轉行的方法 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
這里需要注意的是,當使用 ?
exit out
? 方法時,out 是對應于循環(huán)的一個別名,需要同時在 do 前和 enddo 后添加 out 的聲明。當然,這里的別名也可以使用其他符合規(guī)則的字符串,只要不與同一個代碼文件中的其他別名或變量名等相同即可。
更多建議: