a = 15
的賦值語句會被忽略所以 a 的值是在 goto 語句執(zhí)行之前賦的值 10;同理,b = 11
的賦值語句在 goto 語句和跳轉行之間會被忽略,跳轉行的 b = 20
生效。如示例 12 所示,當 goto 語句跳轉到它之前行執(zhí)行時,就會造成無限循環(huán),每次執(zhí)行到 goto 語句就會又跳轉到前面,這樣 goto 語句后面的命令都不會被執(zhí)行。我們在使用 goto 語句時對跳轉的行一定要非常注意,一不小心很容易造成死循環(huán)。建議使用 goto 語句的時候跳轉到其后的行,杜絕跳轉到前面的行。
為了提高代碼可讀性,我們不想將 goto 語句跳轉的行直接指向一個操作或者命令,這時我們就可以用 continue 來代替跳轉行,如示例 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 ! 永遠不會被執(zhí)行
print *, a, b ! 永遠不會被執(zhí)行
!!! 示例 13
8 continue
a = 10
b = 11
a = a + b
goto 8
更多建議: