3.
一般形式:<算术量或者算术表达式><关系运算符><算术量或者算术表达式>
4. 5.
$ v2 G& C. q& x- N
运算结果:逻辑值:真[.TRUE.]\\假[.FALSE.] 运算顺序:算术运算>关系运算
?
逻辑表达式
1.
运算符:
1. 2. 3. 4. 5.
.and. .or. .not. .eqv.逻辑等 .neqv.逻辑不等
2.
一般形式:<逻辑变量\\逻辑常量\\关系表达式><逻辑运算符><逻辑变量\\逻辑常量\\关系表达式>
3. 4. 5.
结果:逻辑值:真[.TRUE.]\\假[.FALSE.]
运算顺序:算术运算--->关系运算--->逻辑运算 逻辑运算优先
级:.not.--->.and.--->.or.--->.eqv.--->.neqv.
?
? ?
关于Fortran77的一些有用的简介[4]:
- ^* Y4 h B$ L$ r
IF类选择结构. ]# A# o# F: L. l
?
用块IF实现选择结构:三种典型形式
1.
3 a) T# E' |, ?; L! W; H/ D
基本形式
1. 2. 3. 4. 5. 6.
IF(条件) THEN (块IF语句) 块1 (THEN块) ELSE (ELSE语句) 块2 (ELSE块) ENDIF (ENDIF语句)
说明:IF...THEN语句为块IF结构的入口语句;ENDIF语句为出口语句,必须一一对应,配对使用3 t0 k B\T4 T* O
2.
简单结构7 u3 o9 u, m0 q; T8 g, k7 A) y6 l
1. 2. 3. 4.
IF(条件) THEN 块 ENDIF
说明:没有else块7 P6 @3 a0 g* A. J
3.
嵌套结构\
1.
IF( ) THEN
2. 3. 4. 5. 6. 7. 8. 9.
块1
ELSE IF( ) THEN 块2 ...
ELSE IF( ) THEN 块n
[ELSE 块n+1] ENDIF
?
逻辑IF语句
只用一行表示一种选择结构,当且仅当条件成立时执行,并且只执行一条语句;
IF(条件) 语句8 v% e+ P; \\2 T
( W2 B, Q\
?
算术IF语句
IF<算术表达式> N1,N2,N3& b; P5 c+ U$ ]/ ^4 V 当算术表达式的值
<0执行标号为N1的语句;
=0执行标号为N2的语句; >0执行标号为N1的语句;
关于Fortran77的一些有用的简介[5]:
/ b: l7 }8 V1 _6 r- `$ H0 h& A( i9 N ) d) \\5 R! x1 x7 c' D8 c
循环结构
8 R0 ^9 g\
?
结构形式:循环体[由一些可执行的语句组成]+循环控制语句[控制循环的开始和结束]
?
分类:条件型循环和计数型循环[DO循环]
2 ^: |0 d5 p9 K3 O& L
GOTO语句实现循环
1 R/ K a K( P/ v; Q. v
? ?
一般形式:GOTO
功能:程序执行到此语句时,无条件的转向标号为S1的语句
& P1 r8 j2 e9 F9 v/ Q
DO语句实现循环
8 S) m$ u9 i: V U; @8 p; ~( Q
? ? ?
当循环的初值\\终值\\循环次数都已知时,可用; 组成:一个DO语句和循环体组成 一般形式:
DO S1 I=E1,E2 [,E3] ...... S1 <终端语句> DO I=E1,E2 [,E3] ......ENDDO4 Z1 T* o8 Z A8 b
例如4 s% Y) X$ e1 z
DO 10 I=1,19,2 DO 10 I=E1,19 ,2 SUM=SUM+1& ]. y7 T7 f% |7 ~. g5 d. {; J 10 SUM=SUM+1 S1 CONTINUE DO I=1,19,2 SUM=SUM+1$ k3 p7 ^6 p\f3 V; f ENDDO& {. o, }) e! G4 `* K & D+ e# G% X( n3 z8 E: H $ R! v# t5 \\% V4 J! Y3 C8 A; i% K2 h! I! } ?
说明
1. I为循环变量,S1为语句标号,是本程序单位中另一可执行语句的标号;
2. 步长可以省略,缺省值=1;
3. 循环初值[E1],终值[E2]和步长[E3]都可以是常量\\变量\\表达式;
4. 由于实数在内存中存储的误差,I,E1,E2,E3尽可能用振型量 5. E1,E2,E3都可正可负,E1,E2,可为0,但是E3不能为0.
?
具体执行过程
1. 执行DO语句,首先计算表达式E1,E2,E3的值,若他们的类型