본문 바로가기
학부 강의 노트/포트란 프로그래밍 (보충예제)

포트란 강좌 :: IF와 IF-ELSE 문

by Dr. STEAM 2022. 6. 16.
반응형

단순 논리 IF 구문

      IF (논리식) 실행문

(논리식)이 참이면 실행문이 실행되고, 거짓이면 넘어간다.

 

 if (2.0 <= x .and. x <= 4.0) print *, x

 

이는 아래의 블럭 IF 문과 같다. 

      IF (논리식) THEN

          문블럭

      END IF

(논리식)이 참이면 문블럭이 실행되고, 거짓이면 넘어간다. 두 경우 모두 END IF 문 다음 부터 실행이 계속된다. 

단순 if문의 경우, 문블럭에 다른 if문을 사용할 수 없다. 

 

   if (a >= 0) then 
       x = a * a
       y = sqrt(a) 
   end if

   

블럭 IF 문 (일반적인 형태의 IF문)   

   IF (논리식) THEN

       문블럭1

    ELSE

      문블럭2

   END IF

(논리식)의 참, 거짓을 구별하여 명령문 수행.

논리식이 이 참이면 문블럭1만 실행되고, 거짓이면, 문블럭2만 실행됨. 두 경우 모두 END IF문 다음으로 실행이 이어짐. 

Program test_if
  implicit none
	real :: a=1, b=2, c=3,d
	d = b**2 – 4 * a* c
	if ( d>=0 ) then
		print*,’실근’
	else
		print*,’허근’
	endif
End program test_if

IF-ELSE IF 구문

       IF (논리식1) THEN

            문블럭1

       ELSE IF (논리식2) THEN

                 문블럭2

       ELSE IF (논리식3) THEN

                 문블럭3

               :

       ELSE

                 문블럭n

       END IF

주의! 들여쓰기를 통해서 if, else, end if 간의 혼돈을 줄여야 한다.

 

 

기명 IF 구문(named construct)

구문명 : IF (논리식) THEN

              :

             END IF 구문명

 

예)

outer: if (x > longer ) then 

                 longer = x

                 y = longer * 2

      inner: if (y < shorter) then 

                       print *, " Short "

                 else

                       y = 2.0

                 end if innner

          end if outer

 

 

 

연습문제

1. 다음 IF 문이 타당한지 결정하라.

  • if(a>b) print*, a
  • If b<c n= n+1
  • If(x<=y) stop
  • If(a=x) read*,y
  • If(1<=N<=10) N= 10

2. 점수 (score)가 90점 이상이면 ’excellent’ 를, 80점 이상이면,  ’good’을, 70점 이상이면 ’fair’를  70점 미만이면 “bad”를 출력하는 프로그램을 IF문을 사용하여 작성하시오.

 

3-5. 아래 IF문 실행 결과를 쓰시오. 

3.

If ( x> 3 ) then
	if ( x< 6 ) then
		print*,’x:’,x
	endif
endif

4.

If ( x<3) then
	print*,’x:’,x
else if (x>6) then
	print*,’x:’,x
endif

5.

If ( x<3) then
	if ( x>6) then
		print*,’x:’,x
	endif
endif

6-8. 다음 순서도를 보고 코딩하라.

6. 

7.

 

8.

9.

728x90
반응형