Fortran goto 語句

2023-12-29 14:55 更新
如下所示,這里的 goto 語句的用法與匯編語言的 goto 語句有點(diǎn)類似,指定一個(gè)行號即可無條件跳轉(zhuǎn)到該行執(zhí)行。如果是像下面這樣調(diào)用 goto 語句的行在跳轉(zhuǎn)到的行之前,那么它們之間的行都會被完全忽略。如示例 11 所示,a = 15 的賦值語句會被忽略所以 a 的值是在 goto 語句執(zhí)行之前賦的值 10;同理,b = 11 的賦值語句在 goto 語句和跳轉(zhuǎn)行之間會被忽略,跳轉(zhuǎn)行的 b = 20 生效。如示例 12 所示,當(dāng) goto 語句跳轉(zhuǎn)到它之前行執(zhí)行時(shí),就會造成無限循環(huán),每次執(zhí)行到 goto 語句就會又跳轉(zhuǎn)到前面,這樣 goto 語句后面的命令都不會被執(zhí)行。

我們在使用 goto 語句時(shí)對跳轉(zhuǎn)的行一定要非常注意,一不小心很容易造成死循環(huán)。建議使用 goto 語句的時(shí)候跳轉(zhuǎn)到其后的行,杜絕跳轉(zhuǎn)到前面的行。

為了提高代碼可讀性,我們不想將 goto 語句跳轉(zhuǎn)的行直接指向一個(gè)操作或者命令,這時(shí)我們就可以用 continue 來代替跳轉(zhuǎn)行,如示例 13 所示。

goto 行號

行號 操作或命令

!!! 示例 11
a = 10
goto 8
b = 11
a = 15
8 b = 20
print *, a, b ! 此處輸出 a 的值為 10,b 的值為 20

!!! 示例 12

8 a = 10
b = 11
a = a + b
goto 8
b = b - a ! 永遠(yuǎn)不會被執(zhí)行
print *, a, b ! 永遠(yuǎn)不會被執(zhí)行

!!! 示例 13
8 continue
a = 10
b = 11
a = a + b
goto 8
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號