본문 바로가기
프로그래밍/Fortran 77

[FORTRAN 기초] 5편: 조건문(IF ~ THEN ~ ENDIF)으로 합격/불합격 판별하기 fortran code

by 오!쎈세! 2026. 6. 22.
이전 편에서 계산한 평균 점수 데이터를 바탕으로, 특정 기준 값을 넘겼을 때 다른 로직을 수행하도록 제어하는 논리 조건문(IF)의 포트란 77 표준 코딩법을 알아본다.
🟦 1. 포트란 77의 독특한 관계 연산자 식별자
포트란 77은 타 언어와 달리 크기 비교를 할 때 기호(>=, <) 대신 알파벳 앞뒤에 마침표(.)를 찍어 표현하는 고유의 논리 식별자를 사용함.
  • .GE. (Greater than or Equal to) : 크거나 같다 (>=)
  • .GT. (Greater Than) : 크다 (>)
  • .LE. (Less than or Equal to) : 작거나 같다 (<=)
  • .LT. (Less Than) : 작다 (<)
  • .EQ. (Equal to) : 같다 (==)
  • .NE. (Not Equal to) : 다르다 (!=)

🟪 2. IF 조건문을 활용한 성적 판별 실전 fortran code
아래 코드는 평균 점수가 60.0점 이상이면 'PASS', 60.0점 미만이면 'FAIL'이라는 문자열을 판별하여 화면에 예쁘게 출력하는 구조임. 7번째 칸 정렬 선을 엄수하여 작성해야 한다.
fortran code
12345678901234567890123456789012345678901234567890123456789012345678901234567890
C      =================================================================
C      [선언부] 평균 변수와 합격여부를 담을 문자 변수 선언 (7칸 시작)
C      =================================================================
       PROGRAM IF_MASTER
       IMPLICIT NONE
       
       REAL AVERAGE
       CHARACTER*4 RESULT

C      =================================================================
C      [실행부] 조건식을 연산하고 분기 처리를 수행함 (7칸 시작)
C      =================================================================
       AVERAGE = 58.5
       
*      -----------------------------------------------------------------
*      [IF 조건문 구조] IF (조건식) THEN ~ ELSE ~ ENDIF 제어 흐름
*      -----------------------------------------------------------------
*      평균이 60.0보다 크거나 같은지(.GE.) 판별함
       IF (AVERAGE .GE. 60.0) THEN
           RESULT = 'PASS'
       ELSE
           RESULT = 'FAIL'
       ENDIF
*      -> 조건절을 시작할 때는 반드시 뒤에 THEN 키워드를 붙여야 함
*      -> 옛날 포트란과 달리 포트란 77은 명시적 종료자 ENDIF를 쓰는 구역 구조임

*      -----------------------------------------------------------------
*      [결과 출력] WRITE문과 FORMAT 연동을 통해 깔끔하게 표출함
*      -----------------------------------------------------------------
       WRITE(*, 300) AVERAGE, RESULT
       
300    FORMAT(1X, 'AVERAGE : ', F6.2, '  RESULT : ', A4)
*      -> F6.2 실수 포맷과 A4 문자 포맷을 엮어서 리포트를 만듦

       STOP
       END
코드를 사용할 때는 주의가 필요합니다.
 

💡 [실무 팁] 포트란 조건문 작성 시 입문자들이 가장 많이 내는 2대 에러
타 프로그래밍 언어의 기호 체계에 익숙한 개발자들이 포트란 77 조건문을 작성할 때 칠판 앞에서 가장 많이 헷갈려 하는 함정임.
  • 마침표(.) 누설 사고
    • IF (AVERAGE GE 60.0) 처럼 알파벳 앞뒤의 마침표를 빼먹거나, IF (AVERAGE .GE 60.0) 처럼 한쪽만 찍으면 컴파일러는 GE라는 단어를 연산자가 아닌 일반 변수명으로 오해함. 수식 파괴 에러가 나므로 마침표는 양쪽에 무조건 쌍으로 점을 찍어주어야 함(.GE.).
  • THEN 키워드 누설 사고
    • 현대 언어들은 if (조건) { 실행 } 구조를 취하지만 포트란 77은 블록을 개방할 때 무조건 줄 맨 끝에 THEN을 명시해야 함.
    • 만약 THEN을 생략한 채 아랫줄에 RESULT = 'PASS'를 적으면, 컴파일러는 이를 독립된 구조로 인식하지 못해 ENDIF와 짝꿍이 맞지 않는다며 구문 에러를 뱉으므로 강제 암기가 필수이다.