1. IF (條件….) THEN
•
•
END IF
2. IF (條件….) THEN
Task.t
ELSE
Task.f
END IF
3. Logical IF Statement:
IF (X .GT. Large) THEN
LARGE=X
END IF
or
IF (X .GT. LARGE) LARGE=X
4. IF (X .GT. 0.0) PRINT *, ’ZERO’
5. Nested IF Structure:
IF (……..) THEN
• IF (……..) THEN
• •
• END IF
END IF
6. IF (……..) THEN
IF (……..) THEN
•
ELSE
….
END IF
ELSE
…..
END IF
7. IF (AGE .GT. 25) THEN
IF (STATUS .EQ. 'SINGLE') THEN
IF (SEX .EQ. 'FEMALE') THEN
PRINT *, NAME
END IF
END IF
END IF
8. IF ((AGE.GT.25).AND.(STATUS.EQ.'SINGLE').AND.
(SEX.EQ.'FEMALE')) THEN
PRINT*,NAME
END IF
9. IF (cond.1) THEN
PRINT*,'A'
ELSE IF (cond.2) THEN
PRINT*,'B'
ELSE IF (cond.3) THEN
•
•
ELSE IF (cond.n) THEN
•
ELSE
•
END IF
………………………………………………………….
習題解答:
1. READ*,A,B,C
PRINT *, 'MAX= ', AMAX1(A,B,C)
PRINT *, 'MIN= ', AMIN1(A,B,C)
STOP
END
2. REAL FOOT,INCH,DFOOT
INTERGER A
PRINT*,'conversion….'
PRINT*,'1……..'
PRINT*,'2……..'
READ*,A
IF (A.EQ.1) THEN
READ *, FOOT, INCH
DFOOT=FOOT+INCH/12.0
PRINT*, FOOT, 'FOOT and', INCH, 'INCH= ', DFOOT, 'DFOOT'
ELSE IF (A.EQ.2) THEN
READ *, DFOOT
FOOT=INT (DFOOT)
INCH= (DFOOT-FOOT) *12.0
PRINT*,DFOOT, 'FOOT= ', FOOT, 'FOOT and ', INCH, 'INCH'
ELSE
PRINT*,'You didn't key in correctly !'
END IF
STOP
END
3. REAL REALP,IMAGP
READ *, A, B, C
IF (A.EQ.0) THEN
IF (B.NE.0) THEN
ROOT1=-C/B
PRINT *, '……..'
STOP
END IF
IF (C.NE.0) THEN
PRINT*, '……..'
STOP
ENDIF
PRINT*,'There are infinite # of x'
STOP
END IF
D=B**2 - 4*A*C
IF (D.EQ.0) THEN
ROOT1=-B/2*A
PRINT*,'There is a double root =', ROOT1
ELSE IF (D.GT.0) THEN
ROOT1=(-B+SQRT(D))/(2*A)
ROOT2=(-B-SQRT(D))/(2*A)
PRINT*,'……..'
ELSE
D= - D
REALP=-B/(2*A)
IMAGP=SQRT(D)/(2*A)
PRINT *, 'ROOT1= ', REALP, '+ ', IMAGP, 'i'
PRINT *, 'ROOT2= ', REALP, '- ',IMAGP, 'i'
END IF
STOP
END