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