六、控制語句
一般情況下, FORTRAN程序是按語句順序執(zhí)行的,但需要時,可以改變這種順序。 這種改變可以通過各種控制轉(zhuǎn)移語句、邏輯條件語句等來實現(xiàn)。
(一)轉(zhuǎn)移語句
1.無條件轉(zhuǎn)移語句
無條件轉(zhuǎn)移語句的一般形式為:
GOTO n
當程序流程到達GOTO語句時,隨后就轉(zhuǎn)向語句標號為n的語句。標號為n的語句必須 是可執(zhí)行語句,但它在程序中的排列位置,可以在引導到它的GOTO語句之后,也可以 在該GOTO 語句之前。無條件轉(zhuǎn)移語句常和其他控制語句結合起來使用。
2.算術條件轉(zhuǎn)移語句
算術條件轉(zhuǎn)移語句的一般形式為:
IF (e) nl, n2, n3
其中, e必須是算術表達式,當表達式運算結果e<0時,程序轉(zhuǎn)向標號為n1的語句;當 e=0時,轉(zhuǎn)向標號為n2的語句;當e>0時,轉(zhuǎn)向標號為n3的語句。
例如,計算邊長為B的正方形中挖去半徑為R的圓后的面積,若B<2R,則給出相 關信息。該問題的FORTRAN程序可用別遼條件轉(zhuǎn)移語句編寫如下。
C Computation of area.
READ*B.R
IF (B-2*R) 5, 15, 15
5 WRITE (*, 10)
10 FORMAT (’Error message: B less than 2*R‘)
GOTO 20
15 AREA=B*B-3.14159*R*R
WRITE *AREA
20 CONTINUE
END
本例中,在算術條件轉(zhuǎn)移語句的第1個分支后,使用了GOTO語句;倘沒有此語句,則 程序按順序仍會執(zhí)行標號為15的語句,從而得出不正確的結果。
一般情況下, FORTRAN程序是按語句順序執(zhí)行的,但需要時,可以改變這種順序。 這種改變可以通過各種控制轉(zhuǎn)移語句、邏輯條件語句等來實現(xiàn)。
(一)轉(zhuǎn)移語句
1.無條件轉(zhuǎn)移語句
無條件轉(zhuǎn)移語句的一般形式為:
GOTO n
當程序流程到達GOTO語句時,隨后就轉(zhuǎn)向語句標號為n的語句。標號為n的語句必須 是可執(zhí)行語句,但它在程序中的排列位置,可以在引導到它的GOTO語句之后,也可以 在該GOTO 語句之前。無條件轉(zhuǎn)移語句常和其他控制語句結合起來使用。
2.算術條件轉(zhuǎn)移語句
算術條件轉(zhuǎn)移語句的一般形式為:
IF (e) nl, n2, n3
其中, e必須是算術表達式,當表達式運算結果e<0時,程序轉(zhuǎn)向標號為n1的語句;當 e=0時,轉(zhuǎn)向標號為n2的語句;當e>0時,轉(zhuǎn)向標號為n3的語句。
例如,計算邊長為B的正方形中挖去半徑為R的圓后的面積,若B<2R,則給出相 關信息。該問題的FORTRAN程序可用別遼條件轉(zhuǎn)移語句編寫如下。
C Computation of area.
READ*B.R
IF (B-2*R) 5, 15, 15
5 WRITE (*, 10)
10 FORMAT (’Error message: B less than 2*R‘)
GOTO 20
15 AREA=B*B-3.14159*R*R
WRITE *AREA
20 CONTINUE
END
本例中,在算術條件轉(zhuǎn)移語句的第1個分支后,使用了GOTO語句;倘沒有此語句,則 程序按順序仍會執(zhí)行標號為15的語句,從而得出不正確的結果。

